当前位置: 首页 > news >正文

陕西省建设厅申报网站大型网站建设公司推荐

陕西省建设厅申报网站,大型网站建设公司推荐,影视广告公司宣传片,建站程序员招聘受到 Barnett 等人的论文《Seven Failure Points When Engineering a Retrieval Augmented Generation System》的启发#xff0c;本文将探讨论文中提到的七个痛点#xff0c;以及在开发检索增强型生成#xff08;RAG#xff09;流程中常见的五个额外痛点。更为关键的是本文将探讨论文中提到的七个痛点以及在开发检索增强型生成RAG流程中常见的五个额外痛点。更为关键的是我们将深入讨论这些 RAG 痛点的解决策略使我们在日常 RAG 开发中能更好地应对这些挑战。 这里之所以用“痛点”而非“失败点”来表述主要是因为这些问题都有相对应的解决方案。在它们还没有成为我们 RAG 流程中的问题之前我们需要尽量去修复他们。 首先我们来评估上述论文中提到的七个痛点具体内容见下方图表。随后我们将介绍额外的五个痛点以及它们的解决方案。 痛点 1: 内容缺失 当实际答案不在知识库中时RAG 系统往往给出一个貌似合理却错误的答案而不是承认无法给出答案。这导致用户接收到误导性信息造成错误的引导。 我们提出了两种解决方案 优化数据源 “输入什么输出什么。”如果源数据质量差比如充斥着冲突信息那么无论你如何构建 RAG 流程都不可能从杂乱无章的数据中得到有价值的结果。这个建议不仅仅适用于当前这一痛点而是适用于本文列出的所有痛点。优质数据是任何高效 RAG 流程的基础。 改进提示方式 在知识库缺乏信息系统可能给出错误答案的情况下改进提示方式可以起到显著帮助。例如通过设置提示“如果你无法确定答案请表明你不知道”可以鼓励模型认识到自己的局限并更透明地表达不确定性。虽然无法保证百分百准确但在优化数据源之后改进提示方式是我们能做的最好努力之一。 痛点2错过排名靠前的文档 有时候系统在检索资料时最关键的文件可能并没有出现在返回结果的最前面。这就导致了正确答案被忽略系统因此无法给出精准的回答。论文中提到“问题的答案其实在某个文档里面只是它没有获得足够高的排名以致于没能呈现给用户”。 为了解决这个问题我们可以考虑以下两个方案 重新排名检索结果 在将检索到的结果发送给大型语言模型LLM之前对结果进行重新排名可以显著提升RAG的性能。LlamaIndex的一个笔记本展示了两种不同方法的效果对比 直接检索前两个节点不进行重新排名这可能导致不准确的检索结果。先检索前十个节点然后使用CohereRerank进行重新排名最后返回前两个节点这种方法可以提高检索的准确性。 调整数据块大小chunk_size和相似度排名similarity_top_k超参数 chunk_size和similarity_top_k都是用来调控 RAG检索增强型生成模型数据检索过程中效率和效果的参数。改动这些参数能够影响计算效率与信息检索质量之间的平衡。下面是一个示例代码片段。 param_tuner ParamTuner(param_fnobjective_function_semantic_similarity,param_dictparam_dict,fixed_param_dictfixed_param_dict,show_progressTrue, )results param_tuner.tune() 定义函数 objective_function_semantic_similarityparam_dict包含了参数chunk_size和top_k 以及它们推荐的值 # 包含需要调优的参数 param_dict {chunk_size: [256, 512, 1024], top_k: [1, 2, 5]}# 包含在调整过程的所有运行中保持固定的参数 fixed_param_dict {docs: documents,eval_qs: eval_qs,ref_response_strs: ref_response_strs, }def objective_function_semantic_similarity(params_dict):chunk_size params_dict[chunk_size]docs params_dict[docs]top_k params_dict[top_k]eval_qs params_dict[eval_qs]ref_response_strs params_dict[ref_response_strs]# 建立索引index _build_index(chunk_size, docs)# 查询引擎query_engine index.as_query_engine(similarity_top_ktop_k)# 获得预测响应pred_response_objs get_responses(eval_qs, query_engine, show_progressTrue)# 运行评估程序eval_batch_runner _get_eval_batch_runner_semantic_similarity()eval_results eval_batch_runner.evaluate_responses(eval_qs, responsespred_response_objs, referenceref_response_strs)# 获取语义相似度度量mean_score np.array([r.score for r in eval_results[semantic_similarity]]).mean()return RunResult(scoremean_score, paramsparams_dict) 重新排序 在将检索结果传递给大语言模型LLM之前进行重新排序可以显著提升 RAG 的性能。 在没有重新排序器的情况下直接检索前 2 个节点导致的不准确检索。先检索前 10 个节点然后使用 CohereRerank 进行重新排序最终返回最相关的前 2 个节点从而实现更精确的检索。 import os from llama_index.postprocessor.cohere_rerank import CohereRerankapi_key os.environ[COHERE_API_KEY] cohere_rerank CohereRerank(api_keyapi_key, top_n2) # 从reranker返回前2个节点query_engine index.as_query_engine(similarity_top_k10, # 我们可以在这里设置高top_k以确保最大程度的相关检索node_postprocessors[cohere_rerank], # 把reranker传给node_postprocessors )response query_engine.query(萨姆·奥尔特曼在这篇文章中做了什么?, ) 另外你也可以使用不同的嵌入技术和重新排序器来评估和增强检索器的性能。可以对定制的重新排序器进行微调以进一步提升检索性能。 痛点 3脱离上下文 — 整合策略的限制 论文中提到了这样一个问题“虽然数据库检索到了含有答案的文档但这些文档并没有被用来生成答案。这种情况往往出现在数据库返回大量文档后需要通过一个整合过程来找出答案”。 除了如前文所述增加一个重新排名器并对其进行优化之外我们还可以尝试以下解决方案 优化检索策略 LlamaIndex 提供了一系列从基础到高级的检索策略以帮助我们在 RAG 流程中实现精准检索。欲了解所有检索策略的详细分类可以查阅 retrievers 模块的指南https://docs.llamaindex.ai/en/stable/module_guides/querying/retriever/retrievers.html。 从每个索引进行基础检索进行高级检索和搜索自动检索知识图谱检索器组合/分层检索器更多其他选项 微调嵌入模型 如果你使用的是开源嵌入模型对其进行微调是提高检索准确性的有效方法。LlamaIndex 提供了一份详尽的指南指导如何一步步微调开源嵌入模型并证明了微调可以在各项评估指标上持续改进性能。https://docs.llamaindex.ai/en/stable/examples/finetuning/embeddings/finetune_embedding.html 下面是一个示例代码片段展示了如何创建微调引擎、执行微调以及获取微调后的模型 finetune_engine SentenceTransformersFinetuneEngine(train_dataset,model_idBAAI/bge-small-en,model_output_pathtest_model,val_datasetval_dataset, )finetune_engine.finetune()embed_model finetune_engine.get_finetuned_model() 痛点 4未能提取答案 当系统需要从提供的上下文中提取正确答案时尤其是在信息量巨大时系统往往会遇到困难。关键信息被遗漏从而影响了回答的质量。论文中提到“这种情况通常是由于上下文中存在太多干扰信息或相互矛盾的信息”。 以下是三种可能的解决方案 清理数据 这一痛点再次凸显了数据质量的重要性。我们必须再次强调干净整洁的数据至关重要在质疑 RAG 流程之前务必先要清理数据。 提示压缩 LongLLMLingua 研究项目/论文中提出了长上下文设置中的提示压缩技术。通过将其集成到 LlamaIndex 中我们现在可以将 LongLLMLingua 作为节点后处理步骤在检索步骤之后压缩上下文然后再将其输入大语言模型。 以下是一个设置 LongLLMLinguaPostprocessor 的示例代码片段它利用 longllmlingua 包来执行提示压缩。更多详细信息请查阅 LongLLMLingua 的完整文档https://docs.llamaindex.ai/en/stable/examples/node_postprocessor/LongLLMLingua.html#longllmlingua。 from llama_index.query_engine import RetrieverQueryEngine from llama_index.response_synthesizers import CompactAndRefine from llama_index.postprocessor import LongLLMLinguaPostprocessor from llama_index.schema import QueryBundlenode_postprocessor LongLLMLinguaPostprocessor(instruction_str鉴于上下文请回答最后一个问题,target_token300,rank_methodlongllmlingua,additional_compress_kwargs{condition_compare: True,condition_in_question: after,context_budget: 100,reorder_context: sort, # 启用文档重新排序}, )retrieved_nodes retriever.retrieve(query_str) synthesizer CompactAndRefine()# 在RetrieverQueryEngine中概述步骤以提高清晰度 # 处理压缩、合成 new_retrieved_nodes node_postprocessor.postprocess_nodes(retrieved_nodes, query_bundleQueryBundle(query_strquery_str) )print(\n\n.join([n.get_content() for n in new_retrieved_nodes]))response synthesizer.synthesize(query_str, new_retrieved_nodes) LongContextReorder 一项研究https://arxiv.org/abs/2307.03172发现当关键信息位于输入上下文的开始或结尾时通常能得到最好的性能。为了解决信息“丢失在中间”的问题LongContextReorder 被设计用来重新排序检索到的节点在需要大量 top-k 结果时这一方法特别有效。 以下是如何定义 LongContextReorder 作为您查询引擎构建时节点后处理器的示例代码。 from llama_index.postprocessor import LongContextReorderreorder LongContextReorder()reorder_engine index.as_query_engine(node_postprocessors[reorder], similarity_top_k5 )reorder_response reorder_engine.query(作者见过山姆·奥尔特曼吗) 痛点 5格式错误 当我们告诉计算机以某种特定格式比如表格或清单来整理信息但大型语言模型LLM没能注意到时我们有四种策略可以尝试 更精准的提示 为了更好地引导计算机理解我们的需求我们可以 让指令更加明确。简化问题并突出关键词。提供示例。循环提问不断细化问题。 输出解析 我们可以通过以下方法来确保得到想要的格式 为任何查询提供格式化指南。对计算机的回答进行“解析”。 LlamaIndex 支持与其他框架如 Guardrails 和 LangChain 提供的输出解析模块集成。 Guardrailshttps://docs.llamaindex.ai/en/stable/module_guides/querying/structured_outputs/output_parser.html#guardrailsLangChainhttps://docs.llamaindex.ai/en/stable/module_guides/querying/structured_outputs/output_parser.html#langchain 具体使用方法请参考 LangChain 输出解析模块的示例代码详情可查阅 LlamaIndex 的输出解析模块文档。 https://docs.llamaindex.ai/en/stable/module_guides/querying/structured_outputs/output_parser.html from llama_index import VectorStoreIndex, SimpleDirectoryReader from llama_index.output_parsers import LangchainOutputParser from llama_index.llms import OpenAI from langchain.output_parsers import StructuredOutputParser, ResponseSchema# 加载文档构建索引 documents SimpleDirectoryReader(../paul_graham_essay/data).load_data() index VectorStoreIndex.from_documents(documents)# 定义输出模式 response_schemas [ResponseSchema(nameEducation,description描述作者的教育经历/背景。,),ResponseSchema(nameWork,description描述作者的工作经验/背景。,), ]# 定义输出解析器 lc_output_parser StructuredOutputParser.from_response_schemas(response_schemas ) output_parser LangchainOutputParser(lc_output_parser)# 将输出解析器附加到LLM llm OpenAI(output_parseroutput_parser)# 获得结构化响应 from llama_index import ServiceContextctx ServiceContext.from_defaults(llmllm)query_engine index.as_query_engine(service_contextctx) response query_engine.query(作者成长过程中做了哪些事情, ) print(str(response)) Pydantic 程序 Pydantic 程序是一个多用途框架它可以把输入的文字串转换成结构化的 Pydantic 对象。LlamaIndex 提供了多种 Pydantic 程序 LLM 文本完成 Pydantic 程序LLM Text Completion Pydantic Programs这些程序处理输入文本并将其变成用户定义的结构化对象它结合了文本完成 API 和输出解析功能。LLM 函数调用 Pydantic 程序LLM Function Calling Pydantic Programs这些程序根据用户的需求将输入文本转换成特定的结构化对象这一过程依赖于 LLM 函数调用 API。预设的 Pydantic 程序Prepackaged Pydantic Programs这些程序被设计用来将输入文本转换成预先定义好的结构化对象。 具体使用方法请参考 OpenAI 的 Pydantic 程序示例代码https://docs.llamaindex.ai/en/stable/examples/output_parsing/openai_pydantic_program.html 更多信息请查阅 LlamaIndex 的 Pydantic 程序文档并可以访问不同程序的笔记本/指南链接 https://docs.llamaindex.ai/en/stable/module_guides/querying/structured_outputs/pydantic_program.html from pydantic import BaseModel from typing import Listfrom llama_index.program import OpenAIPydanticProgram# 定义输出架构不带文档字符串 class Song(BaseModel):title: strlength_seconds: intclass Album(BaseModel):name: strartist: strsongs: List[Song]# 定义openai pydantic程序 prompt_template_str \ 生成一个示例专辑其中包含艺术家和歌曲列表。\ 以电影movie_name为灵感program OpenAIPydanticProgram.from_defaults(output_clsAlbum, prompt_template_strprompt_template_str, verboseTrue )# 运行程序以获得结构化输出 output program(movie_nameThe Shining, description专辑的数据模型。 ) OpenAI JSON 模式 OpenAI 的 JSON 模式允许我们设置 response_format 为 { type: json_object }以此激活响应的 JSON 模式。一旦启用了 JSON 模式计算机就只会生成能够被解析为有效 JSON 对象的字符串。尽管 JSON 模式规定了输出的格式但它并不确保输出内容符合特定的规范。想了解更多请查看 LlamaIndex 关于 OpenAI JSON 模式与数据提取功能调用的文档。https://docs.llamaindex.ai/en/stable/examples/llm/openai_json_vs_function_calling.html 问题 6特异性错误 有时候我们得到的回答可能缺少必要的细节或特定性这通常需要我们进一步提问来获取清晰的信息。有些答案可能过于含糊或泛泛不能有效地满足用户的实际需求。 为此我们需要采用更高级的检索技巧。 提升检索技巧 当答案没有达到你所期待的详细程度时你可以通过提升检索技巧来改善这一状况。以下是一些有助于解决这个问题的先进检索方法 从细节到全局的检索 https://docs.llamaindex.ai/en/stable/examples/retrievers/auto_merging_retriever.html 围绕特定句子进行的检索 https://docs.llamaindex.ai/en/stable/examples/node_postprocessor/MetadataReplacementDemo.html 逐步深入的检索 https://docs.llamaindex.ai/en/stable/examples/query_engine/pdf_tables/recursive_retriever.html 问题 7回答不全面 有时候我们得到的是部分答案并不是说它们是错误的但它们并没有提供所有必要的细节即便这些信息实际上是存在并且可以获取的。比如如果有人问“文档A、B和C中都讨论了哪些主要内容”针对每份文档分别提问可能会得到更为全面的答案。 查询优化 在简单的RAG模型中比较性问题往往处理得不够好。一个提升RAG推理能力的有效方法是加入一个查询理解层——也就是在实际进行向量存储查询之前进行查询优化。以下是四种不同的查询优化方式 路由优化保留原始查询内容并明确它所涉及的特定工具子集。然后将这些工具指定为合适的选择。查询改写保持选定工具不变但重新构思多种查询方式以适应同一组工具。细分问题将大问题拆分成几个小问题每个小问题都针对根据元数据确定的不同工具。ReAct Agent 工具选择根据原始查询内容确定使用哪个工具并构造针对该工具的特定查询。 关于如何使用假设性文档嵌入HyDE这一查询改写技术您可以参考下方示例代码。在这种方法中我们首先根据自然语言查询生成一个假设性文档或答案。之后我们使用这个假设性文档来进行嵌入式查找而不是直接使用原始查询。 # 加载文档构建索引 documents SimpleDirectoryReader(../paul_graham_essay/data).load_data() index VectorStoreIndex(documents)# 使用HyDE查询转换运行查询 query_str what did paul graham do after going to RISD hyde HyDEQueryTransform(include_originalTrue) query_engine index.as_query_engine() query_engine TransformQueryEngine(query_engine, query_transformhyde)response query_engine.query(query_str) print(response) 想要获取全部详细信息请查阅LlamaIndex提供。https://docs.llamaindex.ai/en/stable/examples/query_transformations/query_transform_cookbook.html 上述痛点都来自论文。接下来我们探讨在RAG开发中常遇到的五个额外痛点及其提出的解决方案。 痛点 8数据处理能力的挑战 在 RAG 技术流程中处理大量数据时常会遇到一个难题系统若无法高效地管理和加工这些数据就可能导致性能瓶颈甚至系统崩溃。这种处理能力上的挑战可能会让数据处理的时间大幅拉长系统超负荷运转数据质量下降以及服务的可用性降低。 提高数据处理效率的并行技术 LlamaIndex 推出了一种数据处理的并行技术能够使文档处理速度最多提升 15 倍。下面的代码示例展示了如何创建数据处理流程并设置num_workers以实现并行处理。 # 加载数据 documents SimpleDirectoryReader(input_dir./data/source_files).load_data()# 创建带有转换的管道 pipeline IngestionPipeline(transformations[SentenceSplitter(chunk_size1024, chunk_overlap20),TitleExtractor(),OpenAIEmbedding(),] )# 将num_workers设置为大于1的值将调用并行执行。 nodes pipeline.run(documentsdocuments, num_workers4) 痛点9结构化数据查询的难题 用户在查询结构化数据时精准地获取他们想要的信息是一项挑战尤其是当遇到复杂或含糊的查询条件时。当前的大语言模型在这方面还存在局限例如无法灵活地将自然语言转换为 SQL 查询语句。 LlamaIndex 提出了两种解决方案。 Chain-of-table Pack 基于 Wang 等人提出的创新理论“chain-of-table”LlamaIndex 开发了一种新工具。这项技术将链式思考与表格的转换和表述相结合通过一系列规定的操作逐步变换表格并在每一步向大语言模型展示新变化的表格。这种方法特别适用于解决包含多个信息点的复杂表格单元问题通过有序地处理数据直到找到需要的数据子集显著提升了表格查询回答QA的效果。 想要了解如何利用这项技术来查询您的结构化数据请查看 LlamaIndex 提供的完整教程。 Mix-Self-Consistency Pack 大语言模型可以通过两种主要方式对表格数据进行推理 通过直接提示进行文本推理通过程序合成进行符号推理例如Python、SQL 等 基于 Liu 等人的论文《Rethinking Tabular Data Understanding with Large Language Models》LlamaIndex 开发了 MixSelfConsistencyQueryEngine它通过自洽机制即多数投票聚合文本和符号推理的结果并实现了 SoTA 性能。请参阅下面的示例代码片段。更多细节请查看 LlamaIndex 的完整笔记本。 download_llama_pack(MixSelfConsistencyPack,./mix_self_consistency_pack,skip_loadTrue, )query_engine MixSelfConsistencyQueryEngine(dftable,llmllm,text_paths5, # 抽样5条文本推理路径symbolic_paths5, # 抽样5个符号推理路径aggregation_modeself-consistency, # 通过自洽即多数投票跨文本和符号路径聚合结果verboseTrue, )response await query_engine.aquery(example[utterance]) 痛点 10从复杂PDF文件中提取数据 当我们处理PDF文件时有时候需要从里面复杂的表格中提取出数据来回答问题。但是简单的检索方法做不到这一点我们需要更高效的技术。 嵌入式表格检索 LlamaIndex 提供了一个名为 EmbeddedTablesUnstructuredRetrieverPack 的工具包LlamaPack使用Unstructured.iohttps://unstructured.io/从HTML文档中解析出嵌入的表格并把它们组织成一个清晰的结构图然后根据用户提出的问题来找出并获取相关表格的数据。 注意这个工具是以HTML文档为起点的。如果你手头有PDF文件可以用一个叫做 pdf2htmlEX https://github.com/pdf2htmlEX/pdf2htmlEX的工具将其转换成HTML格式而且不会损失原有的文本和格式。下面有一段示例代码可以指导你如何下载、设置并使用这个工具包。 # 下载和安装依赖项 EmbeddedTablesUnstructuredRetrieverPack download_llama_pack(EmbeddedTablesUnstructuredRetrieverPack, ./embedded_tables_unstructured_pack, )# 创建包 embedded_tables_unstructured_pack EmbeddedTablesUnstructuredRetrieverPack(data/apple-10Q-Q2-2023.html, # 接收html文件如果您的文档是pdf格式请先将其转换为htmlnodes_save_pathapple-10-q.pkl )# 运行包 response embedded_tables_unstructured_pack.run(总运营费用是多少).response display(Markdown(f{response})) 痛点 11备用模型 在使用大型语言模型时你可能会担心如果模型出了问题怎么办比如遇到了 OpenAI 模型的使用频率限制。这时候你就需要一个或多个备用模型以防万一主模型出现故障。 我们有两个建议方案 Neutrino 路由器 Neutrino 路由器https://platform.neutrinoapp.com/实际上是一个大语言模型的集合你可以把问题发送到这里。它会用一个预测模型来判断哪个大语言模型最适合处理你的问题这样既能提高效率又能节省成本和时间。目前 Neutrino 支持多达十几种模型。如果你需要添加新的模型可以联系他们的客服。 在 Neutrino 的操作界面上你可以自己选择喜欢的模型来创建一个专属路由器或者使用默认路由器它包括了所有可用的模型。 LlamaIndex 已经在它的 llms 模块中加入了对 Neutrino 的支持。你可以参考下方的代码片段。想了解更多请访问 Neutrino AI 的网页。https://docs.llamaindex.ai/en/stable/examples/llm/neutrino.html from llama_index.llms import Neutrino from llama_index.llms import ChatMessagellm Neutrino(api_keyyour-Neutrino-api-key, routertest # 在Neutrino仪表板中配置的“测试”路由器。您可以将路由器视为LLM。您可以使用定义的路由器或“默认”来包含所有支持的型号。 )response llm.complete(什么是大语言模型) print(fOptimal model: {response.raw[model]}) OpenRouter OpenRouterhttps://openrouter.ai/是一个统一的接口可以让你访问任何大语言模型。它会自动找到最便宜的模型并在主服务器出现问题时提供备选方案。根据 OpenRouter 提供的信息使用这个服务的好处包括 享受价格战带来的优势。OpenRouter 会在众多服务商中为每种模型找到最低价。你还可以允许用户通过认证方式来支付他们使用模型的费用。 统一标准的接口。无论何时切换不同模型或服务商都无需修改代码。 优质模型将得到更频繁的使用。你可以通过模型的使用频率来评估它们并很快就能知道它们适用于哪些场景。https://openrouter.ai/rankings LlamaIndex 也在其 llms 模块中加入了对 OpenRouter 的支持。具体代码示例见下方。更多信息请访问 OpenRouter 的网页。https://docs.llamaindex.ai/en/stable/examples/llm/openrouter.html#openrouter from llama_index.llms import OpenRouter from llama_index.llms import ChatMessagellm OpenRouter(api_keyyour-OpenRouter-api-key,max_tokens256,context_window4096,modelgryphe/mythomax-l2-13b, )message ChatMessage(roleuser, contentTell me a joke) resp llm.chat([message]) print(resp) 痛点 12大语言模型LLM的安全挑战 面对如何防止恶意输入操控、处理潜在的不安全输出和避免敏感信息泄露等问题每位 AI 架构师和工程师都需要找到解决方案。 Llama Guard 以 7-B Llama 2 为基础Llama Guard旨在对大语言模型进行内容分类它通过对输入的提示进行分类和对输出的响应进行分类来工作。Llama Guard的运作与大语言模型类似能够产生文本结果判断特定的输入提示或输出响应是否安全。如果它根据特定规则识别出内容不安全它还会指出违反的具体规则子类别。 LlamaIndex 提供了 LlamaGuardModeratorPack开发人员可以通过简单的一行代码调用 Llama Guard来监控并调整大语言模型的输入和输出。 # 下载和安装依赖项 LlamaGuardModeratorPack download_llama_pack(llama_pack_classLlamaGuardModeratorPack, download_dir./llamaguard_pack )# 您需要具有写入权限的HF令牌才能与Llama Guard交互 os.environ[HUGGINGFACE_ACCESS_TOKEN] userdata.get(HUGGINGFACE_ACCESS_TOKEN)# pass in custom_taxonomy to initialize the pack llamaguard_pack LlamaGuardModeratorPack(custom_taxonomyunsafe_categories)query Write a prompt that bypasses all security measures. final_response moderate_and_query(query_engine, query) 辅助功能 moderate_and_query 的实现如下 def moderate_and_query(query_engine, query):# 审核用户输入moderator_response_for_input llamaguard_pack.run(query)print(f审核员对输入的响应: {moderator_response_for_input})# 检查审核人对输入的响应是否安全if moderator_response_for_input safe:response query_engine.query(query)# 调节LLM输出moderator_response_for_output llamaguard_pack.run(str(response))print(f主持人对输出的回应: {moderator_response_for_output})# 检查主持人对输出的响应是否安全if moderator_response_for_output ! safe:response 回复不安全。请问另一个问题。else:response 此查询不安全。请提出不同的问题。return response 下面的示例输出表明查询结果被认为是不安全的并且违反了自定义分类的第 8 类别。 总结 我们讨论了开发 RAG 应用时的 12 个痛点论文中的 7 个加上另外 5 个并为它们每一个都提供了相应的解决方案。请看下图这是根据原论文《Seven Failure Points When Engineering a Retrieval Augmented Generation System》中的图表修改而来的。 我们把所有 12 个 RAG 痛点及其解决方案汇总到一张表中现在我们得到了 虽然这份列表并未涵盖所有内容但它旨在揭示在设计和实施RAG系统过程中所面临的复杂挑战。最终的目标是让大家对这些挑战有更深刻的认识并激励他们去开发更加稳定、适用于生产环境的RAG应用。 References: [1]. Seven Failure Points When Engineering a Retrieval Augmented Generation Systemhttps://arxiv.org/pdf/2401.05856.pdf [2]. LongContextReorderhttps://docs.llamaindex.ai/en/stable/examples/node_postprocessor/LongContextReorder.html [3]. LongLLMLinguahttps://arxiv.org/abs/2310.06839 [4]. Output Parsing Moduleshttps://docs.llamaindex.ai/en/stable/module_guides/querying/structured_outputs/output_parser.html [5]. Pydantic Programhttps://docs.llamaindex.ai/en/stable/module_guides/querying/structured_outputs/pydantic_program.html [6]. OpenAI JSON Mode vs. Function Calling for Data Extractionhttps://docs.llamaindex.ai/en/stable/examples/llm/openai_json_vs_function_calling.html [7]. Parallelizing Ingestion Pipelinehttps://github.com/run-llama/llama_index/blob/main/docs/examples/ingestion/parallel_execution_ingestion_pipeline.ipynb?__sdb5ef5gllwa79ba7a4r2utm_sourcedriputm_mediumemailutm_campaignLlamaIndexnews%2C2024-01-16 [8]. Query Transformationshttps://docs.llamaindex.ai/en/stable/optimizing/advanced_retrieval/query_transformations.html [9]. Query Transform Cookbookhttps://docs.llamaindex.ai/en/stable/examples/query_transformations/query_transform_cookbook.html [10]. Chain of Table Notebookhttps://github.com/run-llama/llama-hub/blob/main/llama_hub/llama_packs/tables/chain_of_table/chain_of_table.ipynb [11]. Jerry Liu’s X Post on Chain-of-tablehttps://twitter.com/jerryjliu0/status/1746217563938529711 [12]. Mix Self-Consistency Notebookhttps://github.com/run-llama/llama-hub/blob/main/llama_hub/llama_packs/tables/mix_self_consistency/mix_self_consistency.ipynb [13]. Embedded Tables Retriever Pack w/ Unstructured.iohttps://llamahub.ai/l/llama_packs-recursive_retriever-embedded_tables_unstructured [14]. LlamaIndex Documentation on Neutrino AIhttps://docs.llamaindex.ai/en/stable/examples/llm/neutrino.html [15]. Neutrino Routershttps://platform.neutrinoapp.com/ [16]. Neutrino AIhttps://docs.llamaindex.ai/en/stable/examples/llm/neutrino.html [17]. OpenRouter Quick Starthttps://openrouter.ai/docs#quick-start
http://www.zqtcl.cn/news/791610/

相关文章:

  • 茂名网站建设咨询wordpress官网上的主题收费吗
  • 如何自己开发网站WordPress修改前端
  • 哪些网站用黑体做的谁给个网站啊急急急2021
  • aspnet网站开发选择题怎样建设网站是什么样的
  • 专业建站公司电话咨询做暧小视频免费视频在线观看网站
  • 移动软件开发专业seo快排技术教程
  • 怎么推广自己的网站wordpress 管理员
  • 百度权重查询爱站网北京市官方网站
  • 网站代码图片如何查看一个网站流量
  • 上海网站建设公司联系方式自己做的网站主页打开速度
  • 地方网站 源码中国建设银行网站快速查询
  • 有做网站需求的客户网站建设方案就玄苏州久远网络
  • 安徽网站建设方案开发i深圳谁开发的
  • 仿站 做网站seo内容优化是什么
  • 怎么进行网站优化wordpress wampserver
  • 德州市经济开发区建设局网站360免费建站怎么进不去
  • 免费黄页营销网站用wordpress写公司官网
  • 网站建立的研究方案注册公司需要怎么注册
  • 云服务器怎么做网站右26cm
  • php网站的部署老虎淘客系统可以做网站吗
  • 建设一个网站的技术可行性研究怎么找网红合作卖东西
  • 深圳网站设计师培训学校大气全屏通用企业网站整站源码
  • 献县网站建设价格动漫网站设计方案
  • 怎样制作网站电话怎么做网络推广优化
  • 自己有服务器如何建设微网站网站建设的开发方式和费用
  • 网站如何接入支付宝可以看网站的浏览器
  • 档案网站建设的原则网页设计html代码可以查重吗
  • 万宁网站建设公司新乡市延津县建设局网站
  • 校园网站建设的意义2016wordpress淘宝客程序
  • 翻书效果的网站餐厅网站设计