网站建设+临沂三角形景观绿化设计图

张小明 2026/1/1 11:56:59
网站建设+临沂,三角形景观绿化设计图,沈阳之道网站建设,宁波seo营销RAG#xff08;Retrieval-Augmented Generation#xff0c;检索增强生成#xff09;是当前大模型应用中最主流的架构之一。它通过结合外部知识库与大语言模型#xff08;LLM#xff09;#xff0c;有效缓解了模型幻觉、知识滞后和领域专业性不足等问题。本文将带你从零开…RAGRetrieval-Augmented Generation检索增强生成是当前大模型应用中最主流的架构之一。它通过结合外部知识库与大语言模型LLM有效缓解了模型幻觉、知识滞后和领域专业性不足等问题。本文将带你从零开始完整实现一个生产级 RAG 系统。一、RAG 系统整体架构一个典型的 RAG 系统包含以下核心模块用户提问 → 查询理解 → 向量检索 → 文档重排 → 提示工程 → LLM 生成 → 输出 ↑ ↑ 可选 可选 查询改写 重排序模型我们将逐步实现每个环节。二、环境准备pipinstalllangchain0.2.0\langchain-community\langchain-core\langchain-text-splitters\sentence-transformers\chromadb\rank_bm25\transformers\torch\openai\python-dotenv建议使用 Python 3.9并设置虚拟环境。三、数据准备加载与切分文档1. 加载文档支持 PDF、Word、TXT、HTML 等格式fromlangchain_community.document_loadersimportPyPDFLoader,DirectoryLoader loaderDirectoryLoader(./docs,glob*.pdf,loader_clsPyPDFLoader)documentsloader.load()2. 文本切分Chunking合理切分对检索质量至关重要。推荐使用语义感知切分fromlangchain_text_splittersimportRecursiveCharacterTextSplitter text_splitterRecursiveCharacterTextSplitter(chunk_size512,chunk_overlap50,separators[\n\n,\n,。,,,, ,])chunkstext_splitter.split_documents(documents)技巧chunk_overlap可避免语义割裂separators按优先级断句。四、向量化构建嵌入Embedding1. 选择 Embedding 模型开源本地模型BAAI/bge-large-zh-v1.5中文强、text-embedding-ada-002OpenAI本地部署推荐sentence-transformersfromlangchain_community.embeddingsimportHuggingFaceBgeEmbeddings embeddingsHuggingFaceBgeEmbeddings(model_nameBAAI/bge-large-zh-v1.5,model_kwargs{device:cuda},encode_kwargs{normalize_embeddings:True})2. 构建向量数据库使用 Chroma轻量级或 Milvus生产级importchromadbfromlangchain_chromaimportChroma vectorstoreChroma.from_documents(documentschunks,embeddingembeddings,persist_directory./chroma_db)retrievervectorstore.as_retriever(search_kwargs{k:5})k5表示检索 Top-5 相关片段。五、检索优化关键原始向量检索可能召回不相关结果需优化1. 查询改写Query Rewriting使用 LLM 对用户问题进行澄清或扩展fromlangchain_core.promptsimportPromptTemplatefromlangchain_openaiimportChatOpenAI rewrite_promptPromptTemplate.from_template(你是一个查询优化器。请将以下用户问题改写为更清晰、更适合检索的形式{question})llmChatOpenAI(modelgpt-4o)rewriterrewrite_prompt|llm rewritten_queryrewriter.invoke({question:怎么重启服务}).content2. 混合检索Hybrid Search结合关键词BM25 向量检索fromrank_bm25importBM25Okapiimportjieba# 构建 BM25 索引中文需分词corpus[doc.page_contentfordocinchunks]tokenized_corpus[list(jieba.cut(text))fortextincorpus]bm25BM25Okapi(tokenized_corpus)defhybrid_search(query,k5):# 向量检索vec_resultsretriever.invoke(query)vec_ids{doc.metadata[id]fordocinvec_results}# BM25 检索tokenized_querylist(jieba.cut(query))bm25_scoresbm25.get_scores(tokenized_query)top_bm25sorted(range(len(bm25_scores)),keylambdai:bm25_scores[i],reverseTrue)[:k]# 融合取并集去重all_docsvec_results[chunks[i]foriintop_bm25ifinotinvec_ids]returnall_docs[:k]3. 重排序Re-ranking使用 Cross-Encoder 模型对 Top-K 结果重新打分fromsentence_transformersimportCrossEncoder rerankerCrossEncoder(BAAI/bge-reranker-large)pairs[(query,doc.page_content)fordocinretrieved_docs]scoresreranker.predict(pairs)reranked[docfor_,docinsorted(zip(scores,retrieved_docs),reverseTrue)]六、提示工程与生成构建高质量 Prompttemplate 你是一个专业客服助手请根据以下上下文回答用户问题。 - 如果答案不在上下文中请回答“根据现有资料无法回答”。 - 保持回答简洁、准确。 上下文 {context} 问题{question} 回答 promptChatPromptTemplate.from_template(template)构建 RAG 链fromlangchain_core.runnablesimportRunnablePassthroughfromlangchain_core.output_parsersimportStrOutputParser rag_chain({context:retriever,question:RunnablePassthrough()}|prompt|llm|StrOutputParser())answerrag_chain.invoke(如何配置 API 密钥)七、评估与迭代RAG 系统需持续评估检索质量MRR生成质量ROUGE、BLEU、人工评分端到端效果使用 TruLens 或 RAGAS 框架# 示例用 RAGAS 评估fromragasimportevaluatefromragas.metricsimportfaithfulness,answer_relevancy resultevaluate(datasetyour_test_set,metrics[faithfulness,answer_relevancy],llmllm,embeddingsembeddings)八、部署建议本地测试FastAPI Uvicorn生产部署Docker 容器化搭配 Redis 缓存、Nginx 负载均衡监控记录查询日志、延迟、失败率总结一个健壮的 RAG 系统 ≠ 简单拼接“检索 LLM”。关键在于高质量数据切分混合检索 重排序精准的提示工程持续评估与迭代
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站制作多少钱新闻山西省网站建设哪家好

对于非英语母语的研究者而言,用英语撰写和发表论文是一项充满挑战的系统工程,涉及从思维转码到规范表达的多重障碍。好写作AI针对这一全流程,集成智能化解决方案,在精准翻译、结构化英语写作与学术级润色三个维度提供深度支持&…

张小明 2025/12/30 21:24:26 网站建设

沈阳公司做网站的it外包中心

深入解析DNS配置与缓存名称服务器 1. DNS记录查询示例 我们可以尝试查询其他类型的记录,例如CNAME(规范名称)。以下是一个查询示例: host -t cname www.ee.umd.edu查询结果如下: www.ee.umd.edu is an alias for ajclark.eng.umd.edu.这表明 www.ee.umd.edu 的规范…

张小明 2025/12/30 21:23:52 网站建设

大学学风建设网站免费下载简历模板网站

还在为鸣潮游戏卡顿、画质不佳而烦恼吗?WaveTools作为专业的鸣潮工具箱,为您提供从画质调节到数据统计的全方位游戏优化方案。无论您是想解锁高帧率流畅体验,还是需要管理多个游戏账号,这款工具都能轻松满足您的需求。 【免费下载…

张小明 2025/12/30 21:23:18 网站建设

彩票网站建设教程专门做二手房车的网站

RunCat 365作为一款创新的Windows任务栏监控工具,通过可爱的动物动画实时反映系统资源使用状况。本文采用工程师思维框架,从现象诊断、根因分析到修复策略,系统性解决应用运行中的各类技术故障。 【免费下载链接】RunCat_for_windows A cute …

张小明 2025/12/31 23:00:09 网站建设

河南建设网站公司一站式商家服务平台

好,下面我帮你在“ESP32 买谁家的?”这个标题下,进一步把「四博智联的 AI 方案优势」单独拎出来放大,不再泛讲 ESP32,也不对比别人,核心就是一句话:买 ESP32 AI,就买四博智联。 整体…

张小明 2025/12/30 21:22:09 网站建设

做美食网站有哪些wordpress 预览demo

你是否曾经在嵌入式开发中面临这样的困境:设备需要同时提供串口通信和文件存储功能,但硬件接口资源有限?🚀 今天,我将为你揭秘Zephyr RTOS中USB复合设备的终极实现方案,让你的嵌入式设备瞬间变身多功能神器…

张小明 2025/12/30 21:21:31 网站建设