中国建设银行网站签名通下载安装做cra需要关注的网站

张小明 2026/1/19 17:32:17
中国建设银行网站签名通下载安装,做cra需要关注的网站,门户网站开发需求文档,网站群建设 公司检索链的种类 检索链是实现检索增强生成#xff08;RAG#xff09;的核心组件#xff0c;其核心逻辑是#xff1a;先从知识库中检索与用户相关的上下文#xff0c;再将问题和上下文传入大模型生成答案。其主要分类如下#xff1a;链名称核心特点RetrievalQA基础检索问答链…检索链的种类检索链是实现检索增强生成RAG的核心组件其核心逻辑是先从知识库中检索与用户相关的上下文再将问题和上下文传入大模型生成答案。其主要分类如下链名称核心特点RetrievalQA基础检索问答链最通用RetrievalQAWithSourcesChain专门优化「来源追溯」ConversationalRetrievalChain融合对话记忆RetrievalQAWithChainOptions自定义链配置进阶以电商平台商品推荐为例下面自己手搓的代码盗用请标注来源用到的函数fromlangchain_community.document_loadersimport(TextLoader,PyPDFLoader,UnstructuredMarkdownLoader,WebBaseLoader)fromlangchain_classic.schemaimportDocumentfromlangchain_community.vectorstoresimportFAISSfromlangchain_classic.chainsimportRetrievalQAfromlangchain_classic.promptsimportPromptTemplatefromlangchain_community.embeddingsimportDashScopeEmbeddings步骤一我用到的商品文件下图是我的商品pdf步骤二pdf转进行分块我们这里按照自定义字符串进行分割即#defprint_document_splits(splits,num_to_display5):print(f\n 文档分割详情共{len(splits)}个片段:\n*60)fori,docinenumerate(splits[:num_to_display]):print(f\n➡️ 片段{i1}:)print(f 来源:{doc.metadata.get(source,未知)})print(f 页码:{doc.metadata.get(page,未知)})print(f 字符数:{len(doc.page_content)})content_previewdoc.page_content[:200]...iflen(doc.page_content)200elsedoc.page_contentprint(f 内容预览:{content_preview})iflen(splits)num_to_display:print(f\n... 还有{len(splits)-num_to_display}个片段未显示)embeddingsDashScopeEmbeddings(modeltext-embedding-v3,dashscope_api_keysk-8009265c5eddxxxxx9cb9ef3)loaderPyPDFLoader(/wwwxxxx量商品推荐_20251224135554.pdf)documentsloader.load()# 按 # 分割这里是关键full_text\n.join([doc.page_contentfordocindocuments])chunksfull_text.split(#)步骤三创建向量数据库vectorstoreFAISS.from_documents(documentssplits,embeddingembeddings)vectorstore.save_local(./save_knowledgeDB)结果展示——生成好的知识库如果创建成功后下次就不用再创建向量数据库了直接导入加载即可加载代码如下vectorstoreFAISS.load_local(folder_path./save_knowledgeDB,# 你的保存路径embeddingsembeddings,# 需要用相同的embedding模型allow_dangerous_deserializationTrue)步骤四创造检索器由于工作内容检索复杂我打算采用混合检索器的方式那么混合检索器主要分为2种分别为简单检索器和加权融和检索器。混合检索器混合的两种方法通常是向量检索和BM25混合下面我将主要介绍这两种方法方法一简单融合检索器实现defSimple_hunhe_search(query,k):print( 简单混合检索——执行向量检索...)vector_documentvector_retriever.invoke(query)print( 简单混合检索——执行BM25检索...)bm25_documentBM25_retriever.invoke(query)all_docs,seen__content[],set()for_invector_document:content_.page_content[:100]# 取文档前100字符作为唯一标识防止相同文档重复统计ifcontentnotinseen__content:all_docs.append((_,0.6))seen__content.add(content)for_inbm25_document:content_.page_content[:100]ifcontentnotinseen__content:seen__content.add(content)all_docs.append((_,0.4))all_docs.sort(keylambdax:x[1],reverseTrue)result[cforc,_inall_docs[:k]]print( 简单混合检索完成...)returnresult方法一加权融合检索器实现defWeight_hunhe_search(query,vector_weight0.7,bm25_weight0.3,k5):print(f⚖️ 加权融合检索 (向量:{vector_weight}/BM25:{bm25_weight}))vector_documentvector_retriever.invoke(query)bm25_documentBM25_retriever.invoke(query)score_docs{}fori,_inenumerate(vector_document):score(1-i/len(vector_document))*vector_weightifvector_documentelse0content_.page_content[:150]ifcontentnotinscore_docs:score_docs[content]{doc:_,score:score}else:score_docs[content][score]scorefori,_inenumerate(bm25_document):score(1-i/len(bm25_document))*bm25_weightifbm25_documentelse0content_.page_content[:150]ifcontentnotinscore_docs:score_docs[content]{doc:_,score:score}else:score_docs[content][score]score resultsorted(score_docs.values(),keylambdax:x[score],reverseTrue)result[items[doc]foritemsinresult[:k]]returnresult步骤五写好提示词连接chain搭建工作流。我们的目的是先提取用户想买的商品该商品放入检索器检索并输出可能的商品再让一个基础LLMChain完成商品推荐逻辑## 先提取用户的商品名称fromlangchain_classic.chainsimportLLMChain extract_product_nameLLMChain(llmllm,promptPromptTemplate.from_template(你是一个专业提取用户需求的助手能够提取用户{input}里面想要的商品名称。例如我想买花露水 - 花露水,直接输出最终商品名称即可严禁多于废话),output_keyproduct_name,verboseFalse)introduct_productsLLMChain(llmllm,promptPromptTemplate.from_template(请结合用户需求和在知识库中检索出来的商品列表挑选最符合的商品推荐给用户输出格式为\为您推荐xx个商品第一款为xxx第二款为xxx。现在用户需求为{input},商品列表为{product_list}),output_keyanswer,verboseFalse)user_issues[我想买大米,给我推荐食用油,有没有口罩]fori,issueinenumerate(user_issues,1):print(f\n{*60})print(f{-*60})resultextract_product_name.invoke({input:f{issue}})print(result:,result[product_name])products_listWeight_hunhe_search(result[product_name],vector_weight0.7,bm25_weight0.3,k10)resintroduct_products.invoke({input:f{issue},product_list:f{products_list}})print(推荐话术,res[answer])print(f{*60})print(\n✅ 所有需求处理完成)效果展示
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

攀枝花市网站建设龙岩天宫山缆车收费

一、cancel 方法 boolean cancel(boolean mayInterruptIfRunning);cancel 方法用于取消异步任务的执行参数值说明true如果任务正在执行,中断任务false如果任务正在执行,不会中断任务;如果任务还未开始,中断任务 返回值说明true任务…

张小明 2026/1/17 20:38:11 网站建设

什么网站做的比较好佛山房地产新闻

在传统的认知中,我们认为“创作”是一个增加系统信息量的过程。画家在白纸上落笔,是将脑中的有序意志转化为画布上的有序色块。然而,当我们进入 Gemini 3 与 Nano Banana Pro (NBP) 的时代,这个过程的本质发生了令人战栗的逆转。 …

张小明 2026/1/17 20:38:11 网站建设

浙江做网站广州网站建设weeken

C 后端面试必刷大厂算法题 文章目录C 后端面试必刷大厂算法题一、3.无重复字符的最长子串二、146. LRU 缓存三、四、五、六、七、八、九、十、十一、十二、十三、十四、十五、十六、十七、十八、十九、二十、总结一、3.无重复字符的最长子串 做到吐! 代码如下&#…

张小明 2026/1/17 20:38:14 网站建设

建外文网站工业产品设计要学什么

第一章:Open-AutoGLM部署全景概览Open-AutoGLM 是一个面向自动化自然语言任务的开源大语言模型推理框架,支持灵活的模型加载、多后端加速与可扩展的任务流水线配置。其设计目标是为开发者提供低延迟、高吞吐的本地化部署方案,适用于智能客服、…

张小明 2026/1/17 20:38:15 网站建设

购买域名网站本网站正在建设中

工会管理 目录 基于springboot vue工会管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue工会管理系统 一、前言 博主介绍:✌️大…

张小明 2026/1/17 20:38:15 网站建设

从事网站建cdn加速国外服务器

Langchain-Chatchat Jenkins自动化部署流程:CI/CD一体化实践 在企业级AI应用日益普及的今天,一个棘手的问题反复浮现:如何在保障数据安全的前提下,高效迭代基于大语言模型(LLM)的知识库系统?尤其…

张小明 2026/1/17 20:38:16 网站建设