add: 添加ollama调用AI chat逻辑
This commit is contained in:
@@ -29,15 +29,13 @@ class Config(BaseProxyConfig):
|
||||
|
||||
|
||||
class AiBotPlugin(Plugin):
|
||||
# name of the bot
|
||||
name: str
|
||||
|
||||
async def start(self) -> None:
|
||||
await super().start()
|
||||
# 加载并更新配置
|
||||
self.config.load_and_update()
|
||||
# 决定当前机器人的名称
|
||||
self.name = self.config['name'] or \
|
||||
super.name = self.config['name'] or \
|
||||
await self.client.get_displayname(self.client.mxid) or \
|
||||
self.client.parse_user_id(self.client.mxid)[0]
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ class Platform:
|
||||
|
||||
|
||||
|
||||
async def get_context(plugin: Plugin, evt: MessageEvent) -> deque:
|
||||
async def get_context(plugin: Plugin, platform: Platform, evt: MessageEvent) -> deque:
|
||||
# 创建系统提示词上下文
|
||||
system_context = deque()
|
||||
# 生成当前时间
|
||||
@@ -81,9 +81,9 @@ async def get_context(plugin: Plugin, evt: MessageEvent) -> deque:
|
||||
for item in additional_context:
|
||||
system_context.append(item)
|
||||
# 如果 消息长度已经超过了配置的消息条数,那么就抛出错误
|
||||
if len(additional_context) > plugin.config['max_context_messages'] - 1:
|
||||
if len(additional_context) > platform.max_context_messages - 1:
|
||||
raise ValueError(f"sorry, my configuration has too many additional prompts "
|
||||
f"({plugin.config['max_context_messages']}) and i'll never see your message. "
|
||||
f"({platform.max_context_messages}) and i'll never see your message. "
|
||||
f"Update my config to have fewer messages and i'll be able to answer your questions!")
|
||||
|
||||
# 用户历史聊天上下文
|
||||
@@ -111,7 +111,7 @@ async def get_context(plugin: Plugin, evt: MessageEvent) -> deque:
|
||||
# 计算单词量和消息数
|
||||
word_count += len(message.split())
|
||||
message_count += 1
|
||||
if word_count >= plugin.config['max_words'] or message_count >= plugin.config['max_context_messages']:
|
||||
if word_count >= platform.max_words or message_count >= platform.max_context_messages:
|
||||
break
|
||||
chat_context.appendleft({"role": role, "content": user + message})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user