传媒网站模板商务网站设计
2026/6/11 13:40:12 网站建设 项目流程
传媒网站模板,商务网站设计,建立网站的关键是定位,忻州推广型网站建设构建一个LangChain RAG应用01. 外挂知识库的聊天机器人架构在 RAG 应用中#xff0c;会通过外部的检索器/知识库检索人类的提问#xff0c;然后将检索到的信息填充到提示模板中#xff0c;一起传递给大语言模型#xff0c;让其生成特定的内容#xff0c;无论 RAG 应用有多…构建一个LangChain RAG应用01. 外挂知识库的聊天机器人架构在 RAG 应用中会通过外部的检索器/知识库检索人类的提问然后将检索到的信息填充到提示模板中一起传递给大语言模型让其生成特定的内容无论 RAG 应用有多么复杂底层一定少不了这个步骤这也是 RAG 的基础架构。所以在 LangChain 中也可以按照上述的流程图将聊天机器人添加上知识库问答功能思路其实非常简单和 Postgres 一样实例化一个全局的 Weaviate 向量数据库避免每次调用时才进行连接提升效率。在聊天应用中将 Weaviate 转换成检索器并将生成的 Document 列表转换成字符串。将处理好的检索器拼接到 LCEL 链输入字典中用户提问时检索对应内容并填充到 Prompt 模板中从而实现知识外挂。02. 外挂知识库的聊天机器人示例在 LLMOps 项目中我们对接的是 Weaviate 向量数据库可以使用云端的向量数据库也可以使用 Docker 搭建的向量数据库两者并没有使用差异修改后的代码如下。集成的向量数据库服务# internal/service/vector_database_service.pyimport osimport weaviatefrom injector import injectfrom langchain_core.documents import Documentfrom langchain_core.vectorstores import VectorStoreRetrieverfrom langchain_openai import OpenAIEmbeddingsfrom langchain_weaviate import WeaviateVectorStorefrom weaviate import WeaviateClientinjectclass VectorDatabaseService:向量数据库服务client: WeaviateClientvector_store: WeaviateVectorStoredef __init__(self):构造函数完成向量数据库服务的客户端LangChain向量数据库实例的创建# 1.创建/连接weaviate向量数据库self.client weaviate.connect_to_local(hostos.getenv(WEAVIATE_HOST),portint(os.getenv(WEAVIATE_PORT)))# 2.创建LangChain向量数据库self.vector_store WeaviateVectorStore(clientself.client,index_nameDataset,text_keytext,embeddingOpenAIEmbeddings(modeltext-embedding-3-small))def get_retriever(self) - VectorStoreRetriever:获取检索器return self.vector_store.as_retriever()classmethoddef combine_documents(cls, documents: list[Document]) - str:将对应的文档列表使用换行符进行合并return \n\n.join([document.page_content for document in documents])配置信息# Weaviate向量数据库配置WEAVIATE_HOST192.168.2.120WEAVIATE_PORT8080聊天机器人处理器def debug(self, app_id: UUID):# 4.创建链应用retriever self.vector_database_service.get_retriever() | self.vector_database_service.combine_documentschain (RunnablePassthrough.assign(historyRunnableLambda(self._load_memory_variables) | itemgetter(history),contextitemgetter(query) | retriever) | prompt | llm | StrOutputParser()).with_listeners(on_endself._save_context)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询