用LangChain快速构建基于“易速鲜花”本地知识库的智能问答系统遇到的一些问题| 豆包MarsCode AI刷题

89 阅读3分钟

在Marcode使用Langchain的过程中,我总结了一些问题与注意事项,希望能对大家有所帮助。

1.配置问题

首先,在Marcode中使用Langchain需要先进行一些简单的配置: 编辑项目中的  /home/cloudide/.cloudiderc 文件,将API_Key、base_url、model_endpoint 配置在环境变量中,在命令行中执行 source ~/.cloudiderc ,之后就都可以使用自己豆包模型API执行课程代码。注意:<>要去掉,并且粘贴的字符串不用加引号。

export OPENAI_API_KEY=<YOU_OPENAI_API_KEY> 
export OPENAI_BASE_URL=<YOU_OPENAI_BASE_URL> 
export LLM_MODELEND=<YOUR_MODEL_ENDPOINT>

2.代码修改

如果原代码不做任何修改直接运行self.client.embeddings.create相关的错误或者error 404之类的错误。这里的问题是因为,在注册第一次API时,进行创建在线推理点处选取的模型是Doubao-pro-32k,其中并不包含embedding模型的。然而代码中是需要用到embedding模型的,所以我们需要再去创建一个在线推理点。

image.png

然后还需要在配置文件中添加EMBEDDING_MODELEND,修改之后记得在命令行中执行 source ~/.cloudiderc

export EMBEDDING_MODELEND=<YOUR_MODEL_ENDPOINT>

image.png 在这里会用到。

3. 启动项目

运行成功后就可以在右侧的web预览里看到页面,进行问答。

image.png 但是豆包好像不太准没有回答出问题,哈哈哈。

项目及实现框架

项目名称:“易速鲜花”内部员工知识库问答系统。

项目介绍:“易速鲜花”作为一个大型在线鲜花销售平台,有自己的业务流程和规范,也拥有针对员工的SOP手册。新员工入职培训时,会分享相关的信息。但是,这些信息分散于内部网和HR部门目录各处,有时不便查询;有时因为文档过于冗长,员工无法第一时间找到想要的内容;有时公司政策已更新,但是员工手头的文档还是旧版内容。

基于上述需求,我们将开发一套基于各种内部知识手册的 “Doc-QA” 系统。这个系统将充分利用LangChain框架,处理从员工手册中产生的各种问题。这个问答系统能够理解员工的问题,并基于最新的员工手册,给出精准的答案。

开发框架:整个框架分为三个部分:

  • 数据源(Data Sources):数据可以有很多种,包括PDF在内的非结构化的数据(Unstructured Data)、SQL在内的结构化的数据(Structured Data),以及Python、Java之类的代码(Code)。在这个示例中,我们聚焦于对非结构化数据的处理。
  • 大模型应用(Application,即LLM App):以大模型为逻辑引擎,生成我们所需要的回答。
  • 用例(Use-Cases):大模型生成的回答可以构建出QA/聊天机器人等系统。

实现机制:大模型应用作为“服务器”,根据用例在数据源中找到答案并返回给用户。