GitHub - htdohk/feishu-bot: 基于飞书开放平台的机器人应用,集成了大语言模型(LLM)和多种功能模块。它主要通过飞书API与用户进行交互,并利用LLM实现智能对话。 · GitHub
Skip to content

About

基于飞书开放平台的机器人应用,集成了大语言模型(LLM)和多种功能模块。它主要通过飞书API与用户进行交互,并利用LLM实现智能对话。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

飞书AI聊天机器人产品文档

✨ 项目概述

本项目是一个基于飞书开放平台的机器人应用,集成了大语言模型(LLM)和多种功能模块。它主要通过飞书API与用户进行交互,并利用LLM实现智能对话。

部署效果

feishu-bot

📖 主要功能

获取飞书消息

  1. 获取单聊和群聊消息,按照不同的聊天群组存储聊天记录,等待使用。
  2. 能够解析@机器人、引用、图片消息、链接消息等内容。

输出内容

  1. 文本聊天 - 基于语义理解的自然对话,支持多模态理解(含图片)
  2. 图片生成 - 支持文生图和图生图能力
    • 文生图:根据描述生成图片
    • 图生图:基于参考图片进行风格转换、内容修改等
    • 图片规格:单次生成1张,尺寸根据参考图比例自适应,单边不超过1024px
    • 传输方式:采用飞书官方推荐的上传图片获取 image_key 后发送,确保消息体不超限
  3. 文本输出 - 平铺直叙,不使用Markdown等富文本格式
  4. 智能总结 - 周报/月报生成,分析用户历史发言形成简约报告
  5. 欢迎语 - 新成员加入时自动生成个性化欢迎语

用户聊天意图解析

  1. 一切针对聊天内容的响应皆基于语意理解,而非关键词命令。
  2. 聊天中@机器人,则立刻回答指定问题。
  3. 在@后的一段时间里分析用户语意,如果在相同的上下文内则持续回答用户问题,无需每次都@机器人。
  4. 在群中旁听其它消息,分析上下文环境,在出现意见分歧、不确定性较高等可能需要机器人主动参与话题时,主动回复。
  5. 当用户发送一张图片并且@机器人进行聊天时,需要调用多模态能力解析图片内容,并回答聊天意图。
  6. 当用户发送一张图片并且@机器人,并且附带的语意是需要机器人生成新图时,需要将这张图片作为参考图进行生图。
  7. 当用户发送网址时,调用模型自身的联网能力对网页内容进行解析。

实时参数调整

  1. 在项目中以单独的文件统一管理所有的系统提示词。
  2. 项目定义机器人基础性格(系统提示词):

你叫托兰,是群聊助手,同时也是群里的一员,说话要有人味。不要自夸/推销/寒暄,说话言简意赅不要啰嗦,不要装腔作势。平铺直叙的输出,而不是markdown格式。可以适当的、克制的使用Emoji来丰富个性。

  1. 根据不同的群聊,接受群内成员发出的性格更改指令,比如“俏皮一些”、“严谨一些”,“每次多说点”、“每次少说点”。
  2. 根据不同的群聊,接受群内成员发出的主动性更改指令,比如“多发表些观点”、“少说话”。
  3. 以上实时调整仅为举例而非关键词,需要提取用户语意。

调整命令

除了语意发起的参数调整,也支持命令调整:

/help # 查看所有命令信息
/summary weekly|monthly # 生成周报或月报
/settings threshold 0.5 # 设置主动发言阈值(0-1),默认0.65
/settings mode quiet|normal|active # 调整发言模式
/optout # 选择不纳入公开个人总结
/reset # 重置 Bot 状态(清空会话、重置设置)

🏗️ 项目构成

部署架构

  1. 终端一般是Linux主机,1Panel面板管理,以Docker化运行所有程序。
  2. 针对不同的部署,以环境文件的方式存储部署相关变量。
  3. 聊天和绘图可以调用不同的模型。

核心模块架构

项目由 12 个核心模块组成,各模块职责明确:

模块 功能 职责
config.py 配置管理 统一管理环境变量、参数配置
constants.py 常量定义 系统提示词、消息常量、关键词定义
database.py 数据库操作 SQLAlchemy ORM 定义、数据库初始化
feishu_api.py 飞书 API 消息发送、图片上传、Token 管理
llm.py LLM 调用 文本生成、多模态(含图片)能力
image_gen.py 图片生成 文生图、图生图、尺寸解析
semantic_intent.py 意图识别 LLM 驱动的用户意图分类
web_search.py 网页搜索 联网搜索、网页内容获取
message_handler.py 消息处理 核心业务逻辑,处理所有消息类型
event_handler.py 事件处理 事件分发、异步任务管理
connector.py 连接管理 事件 webhook 连接、验证
main.py 应用入口 FastAPI 应用初始化、路由定义

数据流图

飞书用户
   ↓
Webhook → connector.py(验证)
   ↓
event_handler.py(事件分发)
   ↓
message_handler.py(核心逻辑)
   ├─ semantic_intent.py(意图识别)
   ├─ llm.py(LLM 调用)
   ├─ image_gen.py(图片生成)
   ├─ web_search.py(网络搜索)
   ├─ database.py(存储)
   └─ feishu_api.py(API 调用)
   ↓
飞书群聊(消息/图片)

创建飞书应用

  1. 访问 飞书开放平台
  2. 创建企业自建应用
  3. 获取以下信息:
    • App ID
    • App Secret
    • Verification Token
  4. 配置应用权限:
    • im:message - 获取与发送单聊、群组消息
    • im:message:readonly - 读取消息
    • im:chat - 获取群组信息
  5. 配置事件订阅:
    • 订阅 im.message.receive_v1 事件
    • 设置请求地址:https://your-domain.com/feishu/events

📄 许可证

本项目采用 MIT 许可证 - 详见LICENSE文件

⚠️ 免责声明

本项目仅供学习和研究使用。使用本项目时,请遵守相关法律法规和飞书开放平台的使用条款。对于使用本项目造成的任何直接或间接损失,开发者不承担任何责任。


About

基于飞书开放平台的机器人应用,集成了大语言模型(LLM)和多种功能模块。它主要通过飞书API与用户进行交互,并利用LLM实现智能对话。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages