大数跨境
0
0

《AI打工摸鱼笔记》LLM+本地知识库自动填写售前技术调研表(上)

《AI打工摸鱼笔记》LLM+本地知识库自动填写售前技术调研表(上) 数翼
2024-07-29
1
导读:随着AI工具的普及,使用大模型对于普通打工人来说已经没有门槛了。
随着AI 工具的普及,使用大模型对于普通打工人来说已经没有门槛了。本文介绍如何使用本地大模型工具,  不编写任何代码,实现基于RAG的对售前技术调研文档的填写功能。

今天和大家讲一下我怎么用 LM Studio、Anything LLM、Streamlit 来实现本地的 RAG 功能, 同时让其帮自己『打工』。打工的内容我只是列举了一个简单场景,大家有类似的工作内容都可以依照 此方法来实现。

文章内容:

  • • 背景需求和设计思路

  • • Anything LLM 使用

  • • 基础版AI员工(LM Studio + Anything LLM + 知识库)

  • • 高级版AI员工(Streamlit 程序「下篇」)

介绍

LLM 大模型如今已经走进了寻常打工人的电脑上,我猜大家用的最多的功能还是在线聊天的文本生成吧。其实我们可以尽可能让AI帮我们快速完成工作,而不仅仅是把应用限制在问答上。

谷歌 Gemini AI 聊天程序
大家可以把日常的工作内容或者场景留言给我, 我们一起讨论下如何让 AI 帮我们打工的可能性。

背景

笔者在一家软件公司任职,正常的软件售卖(合同签订之前)过程有一个「售前」的过程,

售前(Pre-sales)

大致讲一下售前是个啥。

销售售前(Pre-sales)团队在销售过程中起着关键作用。他们负责技术支持和咨询,以帮助销售团队赢得新客户和合同。售前团队的主要职责和工作内容有:

  1. 1. 需求分析:售前工程师与潜在客户合作,了解他们的业务需求和技术要求。这有助于确保提供的解决方案能准确满足客户的需求。

  2. 2. 产品演示:售前团队通常会进行产品演示,展示软件的功能和优势。这些演示通常包括现场演示、网络研讨会或产品试用,以展示产品的实际应用和效果。

  3. 3. 解决方案设计:基于客户的需求,售前团队设计定制化的解决方案。这可能包括软件配置、集成方案和功能定制,以确保产品能完全符合客户的业务流程和技术环境。

  4. 4. 技术咨询:售前工程师提供技术咨询,回答潜在客户关于产品功能、性能、兼容性等方面的问题。他们需要深入了解产品的技术细节和行业标准,以便提供准确的信息。

  5. 5. 编写技术文档:售前团队通常会编写技术文档和提案,包括解决方案建议书、白皮书、技术规格书等。这些文档帮助客户更好地理解解决方案的细节和优势。

  6. 6. 投标支持:在参与招标项目时,售前团队协助准备投标文件,确保所有技术要求和规范都得到满足。他们可能还会参与投标演示和答辩。

  7. 7. 客户培训:在客户决定购买产品后,售前团队可能会参与客户培训(小规模小范围),帮助客户熟悉和有效使用软件产品。

  8. 8. 市场调研:售前团队还需要了解市场动态、竞争产品和行业趋势,以便为公司提供市场情报和反馈,帮助改进产品和销售策略。

  9. 9. 内部协调:售前团队与销售、产品开发、客户支持等内部团队紧密合作,确保客户需求被准确传达和满足。这种协作有助于提升客户满意度和产品质量

上面有一项技术咨询,就用到我了。

我虽然不是售前团队的,但是作为技术产品团队的一员,也经常在客户问到某些专业(也可能不是那么专业) 的技术问题,销售售前团队无法回答时,去支持一下。

常见的一个任务就是,客户给一个他们的《技术标准项》,或者《供应商产品技术调研表》这样的东西, 让我们去填写,然后由客户初步判断一下我们公司产品在技术层面和他们的匹配度。

不同客户的技术调研内容不一样,可能涉及架构、功能、安全、性能、运维等五花八门的问题。

方案

旧的工作方式

每次拿到技术调研表,当然是一条条的去写,如果之前有资料的那么就拷贝一些内容过来。

不过每家的问题组织方式都不一样,导致很多问题不能直接拷贝,还要组织语言。

新的工作方式

新的方式当然是让 AI 尽可能帮我们完成工作,我们设定初级和中级两种工作方式:

  • • 初级:输入调研表的一个问题,让AI给出答案

  • • 中级:直接把给定格式的 Excel 丢给AI程序,自动回答所有问题

由于设计到工作内容和客户隐私,这部分数据(自己公司的技术资料、客户的调研表)肯定不能放到网络上, 这样就需要本地的大模型(LLM)来支持。

实现上面的功能我们需要如下三个工具:

  • • LM Studio:本地的大模型

  • • AnythingLLM:知识库 RAG

  • • Streamlit:读取和展示 Excel 的界面工具

前面两个工具直接安装就好了,不需要编码,可以实现咱们提到的初级能力。

LM Studio

LM Studio 是一个可以让你本地运行任意大模型的工具,使用方法可以查看我的上篇文章,这里不再赘述。

Anything LLM

Anything LLM 的宣传语是 『The all-in-one AI application』, 也就是一体化的 AI 应用程序。号称支持任意大模型(LLM)任意文档任意 AI 代理完全私有。可以执行 RAG、AI 代理等功能,且无需担心代码或基础设施问题。

Anything LLM 网站

当然 Anything LLM 也可以为企业或组织提供完全可定制的、私有的、一体化的 AI 应用程序, 基本上是一个具有许可的完整 ChatGPT,并且具有任何 LLM、嵌入模型或矢量数据库接入的能力。

下载安装,打开可以看到程序界面:

Anything LLM 客户端界面

点击设置按钮:

Anything LLM 设置按钮

LLM 设置

首先设置 LLM ,我们再「大模型供应商」里面选择 「LM Studio」,以及对应的模型。

Anything LLM 设置界面
LM Studio 端口 如果是用默认端口启动 LM Studio,那么直接选择 「LM Studio」这个供应商就可以了, 如果是改了端口运行的 LM Studio,那么选择供应商之后,还需要修改  LM Studion Base URL 的地址端口才可以选择到模型。

向量数据库设置

接着设置向量数据库,使用默认的 LanceDB,这样就不用安装向量数据库了。

Anything LLM 设置向量库

嵌入模型

嵌入模型同样使用 LM Studio 的,前提是要在 LM Studio 先下载好嵌入模型啊。

Anything LLM 嵌入项设置

余下的设置使用默认即可。

工作区

Anything LLM 有工作区的概念, 工作区使用允许的聊天方法设置聊天机器人的运行方式。有两个选项:

  • • 聊天:聊天机器人将回答所有问题,无论其上下文如何。

  • • 查询:聊天机器人只会响应与工作区中的文档相关的聊天。

以及这个工作区使用的 LLM 配置,

  • • 大模型是哪个(可以继承全局设置)

  • • 聊天的历史记录数

  • • 聊天系统提示词:定义 AI 生成响应的上下文和指令

  • • LLM 的温度

每个工作区有独立的向量存储和配置:

  • • 当前存储库的标识和向量数量

  • • 向量库的最大上下文片段:控制每次聊天或查询将发送到 LLM 的上下文片段的最大数量。

  • • 文档相似性阈值:文档与聊天相关所需的最低相似度分数。数字越高,来源与聊天就越相似。

我们创建一个工作区:

创建新的工作区

设置查询模式:

设置聊天模式为「查询」

记得保存配置,不然不生效哦:

更新工作区,保存设置

知识准备

我们先看一下调研表大概长什么样(内容当然是我虚构的了 🌈),

技术调研表

上面这个调研表是用 GPT 生成的,看描述其实回答是否就行了,我们暂且那这个做例子。

为了自动填写技术调研表,肯定要有知识储备了,总不能让我们的大模型随便答吧。

我们都知道,对于大模型来说,越优秀的训练数据越能训练出高性能的大模型。对于我们的知识问答一样,知识数据的质量好坏也直接决定了我们程序给出答案的质量。

构建技术数据我们遵从如下几个原则:

  • • 数据尽量采用标题-内容的模式(问答)

    • • 当然您也可以直接使用公司内的产品设计、技术设计文档

  • • 所有数据都由人工确认

  • • 数据需要跟随使用人工增加和更新

由于基础资料不会太多,而且企业要求「不能出错」,所以人工检查和人工维护是必须的。

为了方便起见,我们每个类型维护一个 Markdown 文件。

架构设计说明(内容也是虚构演示用的哦)

Anything LLM 目前本地版本只支持文本格式的文件,不支持 Excel、PDF 啥的。

上传文档

我们点击工作区旁边的上传按钮:

工作区上传文档按钮

打开上传界面之后,

  1. 1. 上传文件 it-01.md

  2. 2. 选中上传的文件

  3. 3. 点击移动到工作区按钮

上传文件并添加到工作区

然后点击保存和嵌入按钮:

保存和嵌入

AnythingLLM 就会把选择的文档构建向量(嵌入),存储到向量数据库中。

顺便提一句,AnythingLLM 也支持一些连接器,比如 Github 仓库。

AnythingLLM 对连接器的支持

文档嵌入成功之后,我们打开工作区的设置,查看「向量数据库」页签,可以看到「向量数量」发生了变化。

查看嵌入成功的向量数量

系统提示语

为了更好的生成答案,我们确认把聊天模式设置为「查询」,不然 LLM 回答的问题大概率和你自家的系统无关。

然后我们设置「聊天提示词」,这个根据你的需要定制,可以参考之前写的标准答案。我这里简答定制下:

你是WMS厂商的资深售前顾问,请根据上下文来回答客户关于我们产品的问题。
不仅要回答是否满足,还要回答我们如何实现的,以及有什么优势。
以如下格式来回答。

满足。我们的产品采用....
更好的RAG:工作区聊天设置

验证

为了方便起见,我们直接在系统提示词里面指定了回答产品问题,所以直接讲调研表的内容粘贴进来即可:

Anything LLM RAG 的结果

基本像模像样,

文档的重要性 再次强调一下,文档的重要,RAG 不是凭空而来的,而且企业核心问题是不能出错, 而不是小作文写的多好。所以严格依赖文档知识,以及对结果必要的检查, 同时对文档进行升级是一个必不可少而且极其重要的步骤。大模型能不能「 越用越好」的重点就在这里。

大模型的选择

对于本文提到的这类 RAG 问题,我觉得 7B 大小左右的大模型就足够胜任了,而且对个人电脑比较友好, 太大的一般电脑可能跑不起来了,太小的可能效果不太好(不过 7B 左右已经是PC端最小的模型了,2B 的模型一般是针对移动设备等场景的)。

我一般选用国产的模型(比如 GLM4、Qwen2、Baichuan2等), 因为国外模型(Llama3、Gemma、Phi等)训练资料库中文占比不大, 而且小尺寸也决定了其双语、多语能力不会十分出色,使用的时候会有奇奇怪怪的问题。

下一步

好了,今天就到这里。没有写一句代码,就是点点鼠标,就完成了基于知识库的技术调研问答。

现在已经可以针对技术问题一个个进行回答了(其实也可以多个问题也可以一起回答,是具体情况效果可能不一定特别好)。下一步我们使用 Streamlit 实现:输入 Excel 技术调研表,直接输出填写好的 Excel 文件。

相关文章阅读

--- END ---


【声明】内容源于网络
0
0
数翼
专注 AIGC 人工智能知识传播和实践
内容 228
粉丝 0
数翼 专注 AIGC 人工智能知识传播和实践
总阅读29
粉丝0
内容228