100款 DeepSeek 集成方案 —— 应用程序篇(二)
100款 DeepSeek 集成方案 —— AI Agent(三)
一、茴香豆(个人微信/飞书)
1. 茴香豆概述
茴香豆 是一个基于 大语言模型(LLM) 的 AI 助手,专注于为个人和企业提供高效、智能的对话和任务处理服务。它支持在 微信 和 飞书 等平台上运行,帮助用户完成日常沟通、信息检索、任务管理等操作。
2. 核心功能
- 智能对话:
- 支持自然语言处理(NLP),能够理解并回应用户的提问。
- 提供个性化的对话体验,适应不同用户的需求。
- 任务管理:
- 帮助用户创建、管理和提醒任务。
- 支持与日历、待办事项等工具的集成。
- 信息检索:
- 快速从互联网或本地知识库中检索信息。
- 支持实时数据查询(如天气、新闻、股票等)。
- 自动化工作流:
- 支持自动化脚本和流程,帮助用户简化重复性工作。
- 可与第三方工具(如飞书、微信、Slack 等)集成。
- 多平台支持:
- 支持在 微信 和 飞书 等平台上运行。
- 提供跨设备的无缝体验。
3. 茴香豆的技术架构
- 大语言模型(LLM):
- 基于先进的 LLM(如 DeepSeek、GPT 等),提供强大的自然语言理解和生成能力。
- 支持上下文感知和多轮对话。
- 知识库:
- 内置丰富的知识库,涵盖常见问题和领域知识。
- 支持动态更新和扩展。
- API 集成:
- 提供开放的 API,支持与第三方工具和服务的集成。
- 支持自定义插件和扩展。
- 安全与隐私:
- 采用端到端加密技术,确保用户数据的安全性和隐私性。
- 支持权限管理和数据访问控制。
4. 茴香豆的使用场景
- 个人助手:
- 帮助用户管理日程、提醒事项和任务。
- 提供个性化的建议和信息查询服务。
- 企业协作:
- 在飞书等协作平台上,帮助团队管理项目、分配任务和沟通。
- 支持自动化工作流,提高团队效率。
- 客户支持:
- 作为智能客服,自动回答客户问题。
- 支持多语言和 24/7 全天候服务。
- 教育与培训:
- 提供知识问答和学习建议。
- 支持在线考试和培训管理。
5. 茴香豆的集成流程
步骤 1:选择平台
- 选择在 微信 或 飞书 上部署茴香豆。
步骤 2:配置账号
- 在微信或飞书开发者平台上创建应用,获取 API 密钥和权限。
步骤 3:部署茴香豆
- 使用茴香豆提供的 SDK 或 API,将 AI 助手集成到目标平台。
- 示例:在飞书上部署茴香豆:
from feishu import FeishuClient
from huixiangdou import Assistant
# 初始化飞书客户端
feishu_client = FeishuClient(api_key="YOUR_API_KEY")
# 初始化茴香豆助手
assistant = Assistant(model="deepseek", knowledge_base="default")
# 处理飞书消息
def handle_message(message):
response = assistant.generate_response(message.text)
feishu_client.send_message(message.chat_id, response)
# 启动消息监听
feishu_client.start_listening(handle_message)
步骤 4:测试与优化
- 测试茴香豆的功能,确保其能够正确理解和回应用户请求。
- 根据用户反馈优化对话模型和知识库。
6. 茴香豆中配置 deepseek API
步骤1:打开 deepseek 开放平台 申请 token
https://platform.deepseek.com/api_keys
步骤2:修改 config.ini
# config.ini
[llm]
enable_local = 0
enable_remote = 1
..
[llm.server]
..
remote_type = "deepseek"
remote_api_key = "YOUR-API-KEY"
remote_llm_max_text_length = 16000
remote_llm_model = "deepseek-chat"
步骤3:运行
python3 -m huixiangdou.main --standalone
步骤4:效果
7. 总结
- 茴香豆 是一个功能强大的 AI 助手,适用于个人和企业用户。
- 通过集成大语言模型和多平台支持,茴香豆能够提供智能对话、任务管理和信息检索等服务。
- 其灵活的架构和开放的 API 使其能够轻松扩展和定制。
二、LangBot(QQ, 企微, 飞书)
1. LangBot 概述
LangBot 是一个基于自然语言处理(NLP)技术的智能对话机器人,能够集成到多种即时通讯平台中,如 QQ、企业微信(企微)和飞书。它可以帮助用户自动处理常见问题、提供信息查询、执行任务自动化等,提升工作效率和用户体验。
2.主要功能:
- 自动回复:根据用户输入的问题,自动提供相应的回答。
- 任务自动化:执行一些简单的任务,如日程安排、会议提醒、数据查询等。
- 多平台支持:支持 QQ、企业微信、飞书等多个平台,方便用户在不同场景下使用。
- 自定义配置:可以根据企业或个人的需求,自定义机器人的回答逻辑和功能。
- 数据分析:提供对话数据分析,帮助优化机器人的回答效果和用户体验。
3.应用场景:
- 企业内部沟通:在企业微信或飞书中,LangBot 可以作为员工的智能助手,帮助解答常见问题、提供内部信息查询等。
- 客户服务:在 QQ 或企业微信中,LangBot 可以用于客户服务,自动回复客户的常见问题,减轻客服人员的工作负担。
- 个人助手:在个人使用的 QQ 或飞书中,LangBot 可以帮助管理日程、提醒重要事项等。
4.集成方式
步骤 1:获取 DeepSeek 的 API 密钥
- 注册 DeepSeek 账号并创建应用,获取 API 密钥(API Key)或其他认证信息。
步骤 2:在 LangBot 中配置 API 调用
- 在 LangBot 的后台或配置文件中,添加 DeepSeek 的 API 地址和认证信息。
- 示例(Python 伪代码):
deepseek: api_url: "https://api.deepseek.com/v1/query" api_key: "your_api_key_here"
步骤 3:编写调用逻辑
- 在 LangBot 的代码或脚本中,编写调用 DeepSeek API 的逻辑。
- 示例(Python 伪代码):
import requests
def call_deepseek(query):
url = "https://api.deepseek.com/v1/query"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"query": query
}
response = requests.post(url, json=data, headers=headers)
return response.json()
# 在 LangBot 的对话逻辑中调用
def handle_message(user_input):
result = call_deepseek(user_input)
return result["answer"]
5.优势:
- 高效便捷:自动化处理常见任务,减少人工干预。
- 多平台兼容:支持多种主流通讯工具,适应不同用户需求。
- 智能学习:通过机器学习不断优化回答效果,提升用户体验
三、NoneBot(QQ, 飞书, Discord, TG, etc.)
NoneBot 简介
- 框架特点:
- 基于 Python 的异步框架(使用 asyncio)。
- 插件化设计,易于扩展。
- 支持多种聊天平台(通过适配器)。
- 社区活跃,插件生态丰富。
- 核心组件:
- NoneBot 核心:负责事件处理、插件管理和消息分发。
- 适配器(Adapter):用于连接不同的聊天平台(如 QQ、飞书、Discord 等)。
- 插件(Plugin):实现具体功能的模块。
支持的平台
NoneBot 通过适配器支持以下平台:
- QQ:
- 通过 go-cqhttp 或其他 QQ 机器人框架与 NoneBot 对接。
- 支持群聊和私聊消息处理。
- 飞书:
- 使用飞书开放平台的 API,配置事件订阅和消息推送。
- Discord:
- 通过 Discord 的 Bot API 实现消息收发。
- Telegram:
- 使用 Telegram 的 Bot API 实现消息处理。
- 其他平台:
- 如 Slack、Kaiheila 等,可以通过自定义适配器支持。
快速开始
以下是一个简单的 NoneBot 项目搭建步骤:
1.安装 NoneBot
- 使用 pip 安装 NoneBot:
pip install nonebot2
2.创建项目
- 使用 NoneBot 提供的脚手架工具创建项目:
nb create
- 按照提示选择模板和适配器(如 QQ、飞书等)。
3.配置适配器
- 在 pyproject.toml 或 .env 文件中配置适配器的参数。例如:
- QQ(使用 go-cqhttp):
[nonebot]
drivers = ["fastapi"]
host = "127.0.0.1"
port = 8080
[nonebot.adapters.cqhttp]
ws_url = "ws://127.0.0.1:6700"
- 飞书:
[nonebot.adapters.feishu]
app_id = "your_app_id"
app_secret = "your_app_secret"
4.编写插件
在 plugins 目录下创建插件文件(如 hello.py):
from nonebot.plugin import on_command
from nonebot.adapters import Message
from nonebot.params import CommandArg
hello = on_command("hello")
@hello.handle()
async def handle_hello(args: Message = CommandArg()):
name = args.extract_plain_text() or "World"
await hello.finish(f"Hello, {name}!")
5.运行项目
启动 NoneBot:
nb run
平台集成指南
1.QQ
- 使用 go-cqhttp 作为 QQ 客户端。
- 配置 go-cqhttp 的 config.yml,设置 WebSocket 或 HTTP 地址。
- 在 NoneBot 中配置 cqhttp 适配器。
2.飞书
- 在飞书开放平台创建应用,获取 app_id 和 app_secret。
- 配置事件订阅和消息推送。
- 在 NoneBot 中配置 feishu 适配器。
3.Discord
- 在 Discord 开发者平台创建 Bot,获取 Token。
- 在 NoneBot 中配置 discord 适配器:
[nonebot.adapters.discord]
token = "your_discord_bot_token"
4.Telegram
- 在 Telegram 中创建 Bot,获取 Token。
- 在 NoneBot 中配置 telegram 适配器:
[nonebot.adapters.telegram]
token = "your_telegram_bot_token"
插件开发
NoneBot 的插件开发非常简单,以下是一个示例插件:
from nonebot.plugin import on_command
from nonebot.adapters import Message
from nonebot.params import CommandArg
weather = on_command("weather")
@weather.handle()
async def handle_weather(args: Message = CommandArg()):
city = args.extract_plain_text()
if not city:
await weather.finish("请输入城市名称!")
# 调用天气 API
await weather.finish(f"{city} 的天气是...")
部署
- 本地运行:直接使用 nb run 启动。
- Docker 部署:使用 Docker 容器化部署。
- 云服务:部署到云服务器(如腾讯云、阿里云等)。
集成 deepseek
1.确认 DeepSeek 的功能和 API
在集成之前,需要明确 DeepSeek 提供的功能及其 API 的使用方式。通常需要以下信息:
- API 地址:DeepSeek 的接口 URL。
- 认证方式:如 API Key、Token 等。
- 请求参数:调用 API 时需要传递的参数。
- 返回格式:API 返回的数据格式(通常是 JSON)。
例如,假设 DeepSeek 提供了一个问答接口:
- API 地址:https://api.deepseek.com/v1/query
- 请求参数:
{ "query": "用户输入的问题" }
- 返回结果:
{ "answer": "DeepSeek 返回的答案" }
2. 在 NoneBot 中调用 DeepSeek API
以下是如何在 NoneBot 中调用 DeepSeek API 的步骤。
步骤 1:安装依赖
确保安装了 httpx 或 requests 库,用于发送 HTTP 请求:
pip install httpx
步骤 2:编写调用 DeepSeek 的函数
在 NoneBot 项目中创建一个工具函数,用于调用 DeepSeek API。例如:
import httpx
async def call_deepseek(query: str) -> str:
url = "https://api.deepseek.com/v1/query"
headers = {
"Authorization": "Bearer YOUR_DEEPSEEK_API_KEY",
"Content-Type": "application/json"
}
data = {
"query": query
}
async with httpx.AsyncClient() as client:
response = await client.post(url, json=data, headers=headers)
if response.status_code == 200:
result = response.json()
return result.get("answer", "未找到答案")
else:
return "调用 DeepSeek API 失败"
步骤 3:创建 NoneBot 插件
在 plugins 目录下创建一个插件文件(如 deepseek_plugin.py),调用上述函数:
from nonebot.plugin import on_command
from nonebot.adapters import Message
from nonebot.params import CommandArg
from .deepseek_tools import call_deepseek # 导入调用 DeepSeek 的函数
deepseek = on_command("deepseek")
@deepseek.handle()
async def handle_deepseek(args: Message = CommandArg()):
query = args.extract_plain_text()
if not query:
await deepseek.finish("请输入问题!")
answer = await call_deepseek(query)
await deepseek.finish(answer)
3. 配置 DeepSeek API 密钥
将 DeepSeek 的 API 密钥存储在环境变量或配置文件中,避免硬编码。
方法 1:使用环境变量
在 .env 文件中添加:
DEEPSEEK_API_KEY=your_api_key_here
在代码中读取:
import os
api_key = os.getenv("DEEPSEEK_API_KEY")
方法 2:使用 NoneBot 配置
在 pyproject.toml 或 .env 文件中添加:
[nonebot]
deepseek_api_key = "your_api_key_here"
在代码中读取:
from nonebot import get_driver
config = get_driver().config
api_key = config.deepseek_api_key
4. 测试集成
启动 NoneBot 并测试插件:
- 在 QQ、飞书或其他平台上发送消息:
/deepseek 什么是人工智能?
- NoneBot 会调用 DeepSeek API 并返回结果:
人工智能是模拟人类智能的技术……
5. 优化与扩展
缓存机制
为了减少 API 调用次数,可以添加缓存功能(如使用 aiocache):
from aiocache import cached
@cached(ttl=60) # 缓存 60 秒
async def call_deepseek(query: str) -> str:
# 调用 DeepSeek API
多轮对话
结合 NoneBot 的会话管理功能,实现多轮对话:
from nonebot.params import Depends
from nonebot.matcher import Matcher
async def get_query(matcher: Matcher, args: Message = CommandArg()):
return args.extract_plain_text()
@deepseek.handle()
async def handle_deepseek(query: str = Depends(get_query)):
if not query:
await deepseek.finish("请输入问题!")
answer = await call_deepseek(query)
await deepseek.finish(answer)
错误处理
添加错误处理逻辑,确保在 API 调用失败时提供友好的提示:
try:
answer = await call_deepseek(query)
except Exception as e:
await deepseek.finish(f"调用 DeepSeek 失败:{str(e)}")
6. 部署
将集成 DeepSeek 的 NoneBot 部署到目标平台:
- QQ:通过 go-cqhttp 部署。
- 飞书:配置飞书开放平台的事件订阅和消息推送。
- Discord:配置 Discord Bot 的 Token。
- Telegram:配置 Telegram Bot 的 Token。
7. 示例代码
完整的插件代码示例:
from nonebot.plugin import on_command
from nonebot.adapters import Message
from nonebot.params import CommandArg
import httpx
import os
deepseek = on_command("deepseek")
async def call_deepseek(query: str) -> str:
url = "https://api.deepseek.com/v1/query"
headers = {
"Authorization": f"Bearer {os.getenv('DEEPSEEK_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"query": query
}
async with httpx.AsyncClient() as client:
response = await client.post(url, json=data, headers=headers)
if response.status_code == 200:
result = response.json()
return result.get("answer", "未找到答案")
else:
return "调用 DeepSeek API 失败"
@deepseek.handle()
async def handle_deepseek(args: Message = CommandArg()):
query = args.extract_plain_text()
if not query:
await deepseek.finish("请输入问题!")
try:
answer = await call_deepseek(query)
await deepseek.finish(answer)
except Exception as e:
await deepseek.finish(f"调用 DeepSeek 失败:{str(e)}")
社区资源
- 官方文档:https://v2.nonebot.dev/
- GitHub 仓库:https://github.com/nonebot/nonebot2
- 插件市场:https://nonebot.dev/store