add: 添加ollama调用AI chat逻辑

This commit is contained in:
taylor
2024-10-13 17:11:12 +08:00
parent 5821623aae
commit 59629d3efd

View File

@@ -93,7 +93,7 @@ async def get_context(plugin: Plugin, platform: Platform, evt: MessageEvent) ->
# 计算系统提示词单词数 # 计算系统提示词单词数
word_count = sum([len(m["content"].split()) for m in system_context]) word_count = sum([len(m["content"].split()) for m in system_context])
message_count = len(system_context) - 1 message_count = len(system_context) - 1
async for next_event in generate_context_messages(plugin, evt): async for next_event in generate_context_messages(plugin, platform, evt):
# 如果不是文本类型,就跳过 # 如果不是文本类型,就跳过
try: try:
if not next_event.content.msgtype.is_text: if not next_event.content.msgtype.is_text:
@@ -122,7 +122,7 @@ async def get_context(plugin: Plugin, platform: Platform, evt: MessageEvent) ->
async def generate_context_messages(plugin: Plugin, evt: MessageEvent) -> Generator[MessageEvent, None, None]: async def generate_context_messages(plugin: Plugin, platform: Platform, evt: MessageEvent) -> Generator[MessageEvent, None, None]:
yield evt yield evt
if plugin.config['reply_in_thread']: if plugin.config['reply_in_thread']:
while evt.content.relates_to.in_reply_to: while evt.content.relates_to.in_reply_to:
@@ -130,7 +130,7 @@ async def generate_context_messages(plugin: Plugin, evt: MessageEvent) -> Genera
yield evt yield evt
else: else:
event_context = await plugin.client.get_event_context(room_id=evt.room_id, event_id=evt.event_id, event_context = await plugin.client.get_event_context(room_id=evt.room_id, event_id=evt.event_id,
limit=plugin.config["max_context_messages"] * 2) limit=platform.max_context_messages * 2)
previous_messages = iter(event_context.events_before) previous_messages = iter(event_context.events_before)
for evt in previous_messages: for evt in previous_messages: