add: 添加ollama调用AI chat逻辑
This commit is contained in:
@@ -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:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user