forked from mttu-developers/konabot
66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
# 大语言模型平台接入
|
||
|
||
为实现更多神秘小功能,此方 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 越狱等情况。
|