Files
konabot/docs/LLM.md

2.6 KiB
Raw Permalink Blame History

大语言模型平台接入

为实现更多神秘小功能,此方 Bot 需要接入 AI。如果你需要参与开发或测试涉及 AI 的相关功能,麻烦请根据下面的文档继续操作。

配置项目接入 AI

AI 相关的配置文件在 data/config/llm.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 使用的键名。若不给出,则会默认使用配置文件中指定的默认模型。

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 模型。其性能不太能指望,但是它小,而且比较快,可以做一些轻量的操作。

该模型是免费的,但是也需要你注册硅基流动账号,并生成 api_key 添加到配置文件中。

通义千问 qwen3-max

贵但是很先进的最新模型,其能力可以信赖。但是不要拿它做大量工作哦!

百炼大模型平台注册账号并申请 api_key,新用户会赠送 1M tokens足够做测试了。

安全须知

请注意提防 AI 越狱等情况。