茴香豆是一个基于大型语言模型(LLM)的群聊知识助手,旨在为用户提供智能化的对话体验和问题解答。它通过精心设计的三阶段处理流程(预处理、拒答、响应)来应对群聊场景的复杂性,确保既能提供有用的信息,又不会导致消息泛滥。
优势特点
高效的处理流程:茴香豆采用预处理、拒答、响应三阶段 pipeline,有效管理群聊中的信息流,确保对话质量。
预处理阶段
预处理阶段是茴香豆处理流程的第一步,其目的是对接收到的消息进行初步分析和处理,为后续的拒答和响应阶段做好准备。在这一阶段,茴香豆会执行以下任务:
消息解析:分析消息的结构和内容,提取关键词和关键短语。
意图识别:识别用户的意图,判断消息是提问、陈述还是其他类型的交流。
相关性判断:评估消息与当前对话上下文的相关性,以及与知识库中信息的匹配程度。
预处理阶段的目标是为后续的拒答和响应阶段提供必要的信息和基础,确保对话的流畅性和准确性。
拒答阶段
拒答阶段是茴香豆处理流程中的关键环节,其目的是过滤掉那些不相关或不需要回答的问题,以减少无效对话和消息泛滥。在这一阶段,茴香豆会:
设定阈值:根据预处理阶段分析的结果,设定拒答的阈值,如相关性低于一定程度的问题将被拒答。
利用正反例库:通过正反例库(good_questions和bad_questions)来训练和调整拒答机制,确保拒答的准确性和有效性。
动态调整:根据实际对话情况和用户反馈,动态调整拒答策略和阈值,以优化对话体验。
拒答阶段的目的是确保助手只回答那些有价值和相关的问题,避免无谓的消息干扰。
响应阶段
响应阶段是茴香豆与用户互动的直接体现,在这一阶段,助手会根据预处理和拒答阶段的结果,生成并发送回答或反馈。响应阶段的关键点包括:
生成回答:利用LLM的能力,结合知识库和上下文信息,生成准确、有用的回答。
多模态支持:除了文本回答,茴香豆还可以根据需要提供图片、链接等多模态响应。
个性化反馈:根据用户的历史交互和偏好,提供个性化的回答和建议,提升用户体验。
响应阶段的目的是确保每次对话都能为用户提供价值,无论是解决问题还是提供信息。
成本效益:最低只需1.5G显存即可运行,无需昂贵的训练过程,适用于各行各业。
开源且可商用:提供完整的前后端Web、Android和算法源码,支持工业级应用。
多场景应用:已在多个场景中运行,用户可通过加入微信群直接体验群聊助手的效果。
持续更新:不断推出新功能,如Web版、微信接入、多模态整合等,提升用户体验。
功能亮点
Web版:用户可以创建自己的知识库,更新正反例,开关网络搜索,并在飞书/微信群中集成使用。
微信接入:整合图片和公众号解析,实现指代消歧,提升对话理解能力。
多模态支持:实验性功能包括微信群集成的多模态处理,实现OCR等功能。
支持情况
茴香豆支持多种LLM、文件格式和即时通讯软件,包括但不限于InternLM2、Qwen、KIMI、DeepSeek、Step、GLM(ZHIPU)、Xi-Api、OpenAOE等,以及pdf、word、excel、ppt等多种文件格式,同时兼容WeChat、Lark等即时通讯软件。
硬件要求
根据配置不同,茴香豆分为实惠版(1.5GB显存)、标准版(19GB显存)和完整版(40GB显存),用户可根据自己的需求和硬件条件选择合适的版本。
运行指南
运行茴香豆需要首先同意BCE模型协议,并通过命令行登录huggingface。安装依赖包括系统级依赖和Python依赖,对于不同版本的Python,安装的依赖可能有所不同。
版本特性
标准版:本地运行text2vec、rerank和7B模型,能回答领域知识的基础问题。
实惠版:使用openai API替代本地LLM,处理源码级问题,限额免费。
完整版:充分利用检索+长文本能力,能够回答源码级问题。
使用步骤
用户可以通过简单的命令行操作来体验茴香豆的不同功能,包括但不限于运行测试用例、构建知识库、开启拒答流、测试飞书群集成等。
致谢
茴香豆的开发得到了多个开源项目的支持,包括KIMI、BCEmbedding、Langchain-ChatChat和GrabRedEnvelope等,这些项目为茴香豆提供了技术基础和灵感来源。
总结
茴香豆是一个功能丰富、易于部署且成本效益高的群聊知识助手,它通过结合最新的LLM技术和多模态处理能力,为用户提供了一个智能、高效的对话平台。无论是个人用户还是企业用户,都可以通过茴香豆提升群聊体验,实现更加自然、流畅的人机交互。