程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

100款 DeepSeek 集成方案(五) —— 即时通讯插件篇

balukai 2025-02-28 14:49:51 文章精选 14 ℃

100款DeepSeek集成方案 —— 应用程序篇(一)

100款 DeepSeek 集成方案 —— 应用程序篇(二)

100款 DeepSeek 集成方案 —— AI Agent(三)

100款 DeepSeek 集成方案 —— 框架篇(四)


一、茴香豆(个人微信/飞书)


1. 茴香豆概述

茴香豆 是一个基于 大语言模型(LLM) 的 AI 助手,专注于为个人和企业提供高效、智能的对话和任务处理服务。它支持在 微信飞书 等平台上运行,帮助用户完成日常沟通、信息检索、任务管理等操作。


2. 核心功能

  1. 智能对话
  • 支持自然语言处理(NLP),能够理解并回应用户的提问。
  • 提供个性化的对话体验,适应不同用户的需求。
  1. 任务管理
  • 帮助用户创建、管理和提醒任务。
  • 支持与日历、待办事项等工具的集成。
  1. 信息检索
  • 快速从互联网或本地知识库中检索信息。
  • 支持实时数据查询(如天气、新闻、股票等)。
  1. 自动化工作流
  • 支持自动化脚本和流程,帮助用户简化重复性工作。
  • 可与第三方工具(如飞书、微信、Slack 等)集成。
  1. 多平台支持
  • 支持在 微信飞书 等平台上运行。
  • 提供跨设备的无缝体验。

3. 茴香豆的技术架构

  1. 大语言模型(LLM)
  • 基于先进的 LLM(如 DeepSeek、GPT 等),提供强大的自然语言理解和生成能力。
  • 支持上下文感知和多轮对话。
  1. 知识库
  • 内置丰富的知识库,涵盖常见问题和领域知识。
  • 支持动态更新和扩展。
  1. API 集成
  • 提供开放的 API,支持与第三方工具和服务的集成。
  • 支持自定义插件和扩展。
  1. 安全与隐私
  • 采用端到端加密技术,确保用户数据的安全性和隐私性。
  • 支持权限管理和数据访问控制。

4. 茴香豆的使用场景

  1. 个人助手
  • 帮助用户管理日程、提醒事项和任务。
  • 提供个性化的建议和信息查询服务。
  1. 企业协作
  • 在飞书等协作平台上,帮助团队管理项目、分配任务和沟通。
  • 支持自动化工作流,提高团队效率。
  1. 客户支持
  • 作为智能客服,自动回答客户问题。
  • 支持多语言和 24/7 全天候服务。
  1. 教育与培训
  • 提供知识问答和学习建议。
  • 支持在线考试和培训管理。

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.主要功能:

  1. 自动回复:根据用户输入的问题,自动提供相应的回答。
  2. 任务自动化:执行一些简单的任务,如日程安排、会议提醒、数据查询等。
  3. 多平台支持:支持 QQ、企业微信、飞书等多个平台,方便用户在不同场景下使用。
  4. 自定义配置:可以根据企业或个人的需求,自定义机器人的回答逻辑和功能。
  5. 数据分析:提供对话数据分析,帮助优化机器人的回答效果和用户体验。

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 通过适配器支持以下平台:

  1. QQ
  • 通过 go-cqhttp 或其他 QQ 机器人框架与 NoneBot 对接。
  • 支持群聊和私聊消息处理。
  1. 飞书
  • 使用飞书开放平台的 API,配置事件订阅和消息推送。
  1. Discord
  • 通过 Discord 的 Bot API 实现消息收发。
  1. Telegram
  • 使用 Telegram 的 Bot API 实现消息处理。
  1. 其他平台
  • 如 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 并测试插件:

  1. 在 QQ、飞书或其他平台上发送消息:
/deepseek 什么是人工智能?
  1. 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
最近发表
标签列表