|
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">今天和大家讲一下我怎么用 LM Studio、Anything LLM、Streamlit 来实现本地的 RAG 功能, 同时让其帮自己『打工』。打工的内容我只是列举了一个简单场景,大家有类似的工作内容都可以依照 此方法来实现。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">文章内容:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin-left: 8px;padding-left: 1em;list-style: circle;color: rgb(63, 63, 63);" class="list-paddingleft-1"> •背景需求和设计思路 •Anything LLM 使用 •基础版AI员工(LM Studio + Anything LLM + 知识库) •高级版AI员工(Streamlit 程序「下篇」) ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 20px;font-weight: bold;display: table;margin: 2em auto 1.5em;padding-top: 6px;padding-bottom: 6px;padding-left: 16.75px;background-image: linear-gradient(135deg, rgb(113, 23, 234), rgba(113, 23, 234, 0.667), rgba(234, 96, 96, 0.533), rgba(217, 57, 205, 0.267), rgba(217, 57, 205, 0));background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;color: rgb(255, 255, 255);border-radius: 8px;width: 318.25px;">介绍ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">LLM 大模型如今已经走进了寻常打工人的电脑上,我猜大家用的最多的功能还是在线聊天的文本生成吧。其实我们可以尽可能让AI帮我们快速完成工作,而不仅仅是把应用限制在问答上。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;border-radius: 8px;display: block;margin: 0.1em auto 0.5em;border-width: 0px;border-style: solid;border-color: initial;height: auto !important;" title="null" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=86529&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9hZzdaM2RDcTdMazNpYmJ1MWdkeU1xWTZEUGpvazVnR3ZYVks2RzRYZkw5b1JJQ1p2d1Vib1g0cnEwTG5JQmhIV0tpYjB3MFk5UkNqd3FtUjB5bFZYNFN3LzY0MD93eF9mbXQ9cG5nJmFtcA==;from=appmsg"/>ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 20px;font-weight: bold;display: table;margin: 2em auto 1.5em;padding-top: 6px;padding-bottom: 6px;padding-left: 16.75px;background-image: linear-gradient(135deg, rgb(113, 23, 234), rgba(113, 23, 234, 0.667), rgba(234, 96, 96, 0.533), rgba(217, 57, 205, 0.267), rgba(217, 57, 205, 0));background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;color: rgb(255, 255, 255);border-radius: 8px;width: 318.25px;">背景ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1em 8px;letter-spacing: 0.1em;color: rgb(33, 37, 41);padding: 8px 12px;background: rgba(237, 242, 255, 0.8);border-radius: 8px;">笔者在一家软件公司任职,正常的软件售卖(合同签订之前)过程有一个「售前」的过程,ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;font-weight: bold;margin: 2em 8px 0.75em;border-left: 5px solid rgb(161, 27, 218);color: rgb(63, 63, 63);padding: 6px 8px;">售前(Pre-sales)大致讲一下售前是个啥。 销售售前(Pre-sales)团队在销售过程中起着关键作用。他们负责技术支持和咨询,以帮助销售团队赢得新客户和合同。售前团队的主要职责和工作内容有: 1. 需求分析:售前工程师与潜在客户合作,了解他们的业务需求和技术要求。这有助于确保提供的解决方案能准确满足客户的需求。 2. 产品演示:售前团队通常会进行产品演示,展示软件的功能和优势。这些演示通常包括现场演示、网络研讨会或产品试用,以展示产品的实际应用和效果。 3. 解决方案设计:基于客户的需求,售前团队设计定制化的解决方案。这可能包括软件配置、集成方案和功能定制,以确保产品能完全符合客户的业务流程和技术环境。 4.技术咨询:售前工程师提供技术咨询,回答潜在客户关于产品功能、性能、兼容性等方面的问题。他们需要深入了解产品的技术细节和行业标准,以便提供准确的信息。 5. 编写技术文档:售前团队通常会编写技术文档和提案,包括解决方案建议书、白皮书、技术规格书等。这些文档帮助客户更好地理解解决方案的细节和优势。 6. 投标支持:在参与招标项目时,售前团队协助准备投标文件,确保所有技术要求和规范都得到满足。他们可能还会参与投标演示和答辩。 7. 客户培训:在客户决定购买产品后,售前团队可能会参与客户培训(小规模小范围),帮助客户熟悉和有效使用软件产品。 8. 市场调研:售前团队还需要了解市场动态、竞争产品和行业趋势,以便为公司提供市场情报和反馈,帮助改进产品和销售策略。 9. 内部协调:售前团队与销售、产品开发、客户支持等内部团队紧密合作,确保客户需求被准确传达和满足。这种协作有助于提升客户满意度和产品质量。
上面有一项技术咨询,就用到我了。 我虽然不是售前团队的,但是作为技术产品团队的一员,也经常在客户问到某些专业(也可能不是那么专业) 的技术问题,销售售前团队无法回答时,去支持一下。 常见的一个任务就是,客户给一个他们的《技术标准项》,或者《供应商产品技术调研表》这样的东西, 让我们去填写,然后由客户初步判断一下我们公司产品在技术层面和他们的匹配度。 不同客户的技术调研内容不一样,可能涉及架构、功能、安全、性能、运维等五花八门的问题。 方案旧的工作方式每次拿到技术调研表,当然是一条条的去写,如果之前有资料的那么就拷贝一些内容过来。 不过每家的问题组织方式都不一样,导致很多问题不能直接拷贝,还要组织语言。 新的工作方式新的方式当然是让 AI 尽可能帮我们完成工作,我们设定初级和中级两种工作方式: 由于设计到工作内容和客户隐私,这部分数据(自己公司的技术资料、客户的调研表)肯定不能放到网络上, 这样就需要本地的大模型(LLM)来支持。 实现上面的功能我们需要如下三个工具: 前面两个工具直接安装就好了,不需要编码,可以实现咱们提到的初级能力。 LM StudioLM Studio 是一个可以让你本地运行任意大模型的工具,使用方法可以查看我的上篇文章,这里不再赘述。 Anything LLMAnything LLM 的宣传语是 『The all-in-one AI application』, 也就是一体化的 AI 应用程序。号称支持任意大模型(LLM),任意文档,任意 AI 代理,完全私有。可以执行 RAG、AI 代理等功能,且无需担心代码或基础设施问题。  当然 Anything LLM 也可以为企业或组织提供完全可定制的、私有的、一体化的 AI 应用程序, 基本上是一个具有许可的完整 ChatGPT,并且具有任何 LLM、嵌入模型或矢量数据库接入的能力。 下载安装,打开可以看到程序界面:  点击设置按钮:  LLM 设置首先设置 LLM ,我们再「大模型供应商」里面选择 「LM Studio」,以及对应的模型。  向量数据库设置接着设置向量数据库,使用默认的 LanceDB,这样就不用安装向量数据库了。  嵌入模型嵌入模型同样使用 LM Studio 的,前提是要在 LM Studio 先下载好嵌入模型啊。  余下的设置使用默认即可。 工作区Anything LLM 有工作区的概念, 工作区使用允许的聊天方法设置聊天机器人的运行方式。有两个选项: 以及这个工作区使用的 LLM 配置, 每个工作区有独立的向量存储和配置: 我们创建一个工作区:  设置查询模式:  记得保存配置,不然不生效哦:  知识准备我们先看一下调研表大概长什么样(内容当然是我虚构的了 ?),  上面这个调研表是用 GPT 生成的,看描述其实回答是否就行了,我们暂且那这个做例子。
为了自动填写技术调研表,肯定要有知识储备了,总不能让我们的大模型随便答吧。 我们都知道,对于大模型来说,越优秀的训练数据越能训练出高性能的大模型。对于我们的知识问答一样,知识数据的质量好坏也直接决定了我们程序给出答案的质量。 构建技术数据我们遵从如下几个原则: •数据尽量采用标题-内容的模式(问答) •所有数据都由人工确认 •数据需要跟随使用人工增加和更新
由于基础资料不会太多,而且企业要求「不能出错」,所以人工检查和人工维护是必须的。 为了方便起见,我们每个类型维护一个 Markdown 文件。  Anything LLM 目前本地版本只支持文本格式的文件,不支持 Excel、PDF 啥的。
上传文档我们点击工作区旁边的上传按钮:  打开上传界面之后, 1.上传文件it-01.md 2.选中上传的文件 3.点击移动到工作区按钮
 然后点击保存和嵌入按钮:  AnythingLLM 就会把选择的文档构建向量(嵌入),存储到向量数据库中。 顺便提一句,AnythingLLM 也支持一些连接器,比如 Github 仓库。  文档嵌入成功之后,我们打开工作区的设置,查看「向量数据库」页签,可以看到「向量数量」发生了变化。  系统提示语为了更好的生成答案,我们确认把聊天模式设置为「查询」,不然 LLM 回答的问题大概率和你自家的系统无关。 然后我们设置「聊天提示词」,这个根据你的需要定制,可以参考之前写的标准答案。我这里简答定制下: 你是WMS厂商的资深售前顾问,请根据上下文来回答客户关于我们产品的问题。 不仅要回答是否满足,还要回答我们如何实现的,以及有什么优势。 以如下格式来回答。
满足。我们的产品采用....
 验证为了方便起见,我们直接在系统提示词里面指定了回答产品问题,所以直接讲调研表的内容粘贴进来即可:  基本像模像样, 大模型的选择对于本文提到的这类 RAG 问题,我觉得 7B 大小左右的大模型就足够胜任了,而且对个人电脑比较友好, 太大的一般电脑可能跑不起来了,太小的可能效果不太好(不过 7B 左右已经是PC端最小的模型了,2B 的模型一般是针对移动设备等场景的)。 我一般选用国产的模型(比如 GLM4、Qwen2、Baichuan2等), 因为国外模型(Llama3、Gemma、Phi等)训练资料库中文占比不大, 而且小尺寸也决定了其双语、多语能力不会十分出色,使用的时候会有奇奇怪怪的问题。 下一步好了,今天就到这里。没有写一句代码,就是点点鼠标,就完成了基于知识库的技术调研问答。 现在已经可以针对技术问题一个个进行回答了(其实也可以多个问题也可以一起回答,是具体情况效果可能不一定特别好)。下一步我们使用 Streamlit 实现:输入 Excel 技术调研表,直接输出填写好的 Excel 文件。
--- END ---
|