diff --git a/README.md b/README.md index fbea1a1..5038a5e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 此方 bot! +# konabot 在 MTTU 内部使用的 bot 一只。 @@ -63,6 +63,10 @@ code . 配置 `ENABLE_CONSOLE=false` +#### 配置并支持 LLM(大语言模型) + +详见[LLM 配置文档](/docs/LLM.md)。 + ### 运行 使用命令行手动启动 Bot: diff --git a/docs/LLM.md b/docs/LLM.md new file mode 100644 index 0000000..a80a34d --- /dev/null +++ b/docs/LLM.md @@ -0,0 +1,65 @@ +# 大语言模型平台接入 + +为实现更多神秘小功能,此方 Bot 需要接入 AI。如果你需要参与开发或测试涉及 AI 的相关功能,麻烦请根据下面的文档继续操作。 + +## 配置项目接入 AI + +AI 相关的配置文件在 `data/config/llm.json` 文件中。示例格式如下,这也将是到时候在云端的配置文件格式(给出的模型都会有): + +```json +{ + "llms": { + "Qwen2.5-7B-Instruct": { + "base_url": "https://api.siliconflow.cn/v1", + "api_key": "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "model_name": "Qwen/Qwen2.5-7B-Instruct" + }, + "qwen3-max": { + "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "api_key": "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "model_name": "qwen3-max" + } + }, + "default_llm": "Qwen2.5-7B-Instruct" +} +``` + +其中,形如 `qwen3-max` 的名称,是你在程序中调用 LLM 使用的键名。若不给出,则会默认使用配置文件中指定的默认模型。 + +```python +from konabot.common.llm import get_llm + +llm = get_llm() # 获得的是 Qwen2.5-7B-Instruct 模型 +llm = get_llm("qwen3-max") # 获得的是 qwen3-max 模型 + +message = await llm.chat([ + { "role": "system", "content": "你是一只猫娘" }, + { "role": "user", "content": "晚上好呀!" }, +], timeout=None, max_tokens=16384) +# 获得了的是 openai.types.chat.ChatCompletionMessage 对象 + +print(f"AI 返回值:{message.content}") # 注意 content 可能为 None,需要做空值检测 + +client = llm.get_openai_client() # 获得的是一个 OpenAI Client 对象,可以做更多操作 + # 例如,调用 Embedding 模型来做知识库向量化等工作 +``` + +## 本项目使用的模型清单 + +为了便利大家使用,我在这里给出该项目将会使用的模型清单,请根据你的开发需求注册并选择你最喜欢的模型。如果需要接入新的模型,或者使用到文档之外的模型,欢迎在这里给出! + +### 硅基流动 Qwen/Qwen2.5-7B-Instruct + +一个 7B 大小的 AI 模型。其性能不太能指望,但是它小,而且比较快,可以做一些轻量的操作。 + +该模型是免费的,但是也需要你注册[硅基流动](https://cloud.siliconflow.cn/me/models)账号,并生成 `api_key` 添加到配置文件中。 + +### 通义千问 qwen3-max + +贵但是很先进的最新模型,其能力可以信赖。但是不要拿它做大量工作哦! + +在[百炼大模型平台](https://bailian.console.aliyun.com/)注册账号并申请 `api_key`,新用户会赠送 1M tokens,足够做测试了。 + +## 安全须知 + +请注意提防 AI 越狱等情况。