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

健身器材网站源码做网站写页面多少钱

健身器材网站源码,做网站写页面多少钱,基础建设包括哪些,网站如何推广营销使用 llama_index 构建智能问答系统#xff1a;多种文档切片方法的评估 代码优化与解析1. **代码结构优化**2. **日志管理**3. **环境变量管理**4. **模型初始化**5. **提示模板更新**6. **问答函数优化**7. **索引构建与查询引擎**8. **节点解析器测试** 总结 在现代自然语言… 使用 llama_index 构建智能问答系统多种文档切片方法的评估 代码优化与解析1. **代码结构优化**2. **日志管理**3. **环境变量管理**4. **模型初始化**5. **提示模板更新**6. **问答函数优化**7. **索引构建与查询引擎**8. **节点解析器测试** 总结 在现代自然语言处理NLP应用中构建一个高效的问答系统是一个常见的需求。llama_index 是一个强大的工具可以帮助我们快速构建基于文档的问答系统。本文将介绍如何优化和解析一个基于 llama_index 的问答系统代码并逐步解析其核心功能。 代码优化与解析 1. 代码结构优化 我们将代码拆分为多个函数使得代码结构更清晰便于维护和扩展。以下是优化后的代码结构 update_prompt_template用于动态更新查询引擎的提示模板。ask_question向查询引擎提问并输出结果。load_documents加载指定目录下的文档。build_index_and_query_engine构建索引并创建查询引擎。main主函数负责程序的整体逻辑。 这种模块化的设计使得代码更易于理解和扩展。 2. 日志管理 为了避免不必要的警告信息干扰我们使用 logging.basicConfig(levellogging.ERROR) 来设置日志级别为 ERROR。这样可以确保只有重要的错误信息被输出。 import logging logging.basicConfig(levellogging.ERROR)3. 环境变量管理 我们使用 dotenv 库加载 .env 文件中的环境变量确保敏感信息如 API Key不会硬编码在代码中。 from dotenv import find_dotenv, load_dotenv load_dotenv(find_dotenv())4. 模型初始化 我们初始化 OpenAI 的 LLM 和 Embedding 模型确保模型配置一致且易于修改。 llm_client OpenAI(modelgpt-4,api_baseos.environ[OPENAI_BASE_URL],api_keyos.environ[OPENAI_API_KEY],is_chat_modelTrue,seed42, )embed_client OpenAIEmbedding(modeltext-embedding-3-large,api_baseos.environ[OPENAI_EMBED_BASE_URL],api_keyos.environ[OPENAI_API_KEY], )5. 提示模板更新 update_prompt_template 函数用于动态更新查询引擎的提示模板确保问答系统能够根据需求调整回答风格。 def update_prompt_template(query_engine, qa_prompt_tmpl_strNone):if qa_prompt_tmpl_str is None:qa_prompt_tmpl_str (你叫公司小蜜是公司的答疑机器人。你需要仔细阅读参考信息然后回答大家提出的问题。注意事项\n1. 根据上下文信息而非先验知识来回答问题。\n2. 如果是工具咨询类问题请务必给出下载地址链接。\n3. 如果员工部门查询问题请务必注意有同名员工的情况可能有2个、3个甚至更多同名的人\n以下是参考信息。---------------------\n{context_str}\n---------------------\n问题{query_str}\n。回答)qa_prompt_tmpl PromptTemplate(qa_prompt_tmpl_str)query_engine.update_prompts({response_synthesizer:text_qa_template: qa_prompt_tmpl})return query_engine6. 问答函数优化 ask_question 函数负责处理用户的问题输出问题和回答并展示参考文档。通过检查 response 对象是否有 print_response_stream 方法确保兼容不同的响应类型。 def ask_question(question, query_engine):update_prompt_template(query_engine)print( * 50)print(f 问题{question})print( * 50 \n)response query_engine.query(question)print( 回答)if hasattr(response, print_response_stream) and callable(response.print_response_stream):response.print_response_stream()else:print(str(response))print(\n - * 50)print( 参考文档\n)for i, source_node in enumerate(response.source_nodes, start1):print(f文档 {i}:)print(source_node)print()print(- * 50)return response7. 索引构建与查询引擎 build_index_and_query_engine 函数负责构建索引并创建查询引擎。根据不同的节点解析器如 TokenTextSplitter、SentenceSplitter 等生成不同的查询引擎。 def build_index_and_query_engine(documents, embed_model, llm, node_parser, postprocessorsNone):print(f\n{ * 50})print(f 正在使用 {node_parser.__class__.__name__} 方法进行测试...)print(f{ * 50}\n)print( 正在处理文档...)nodes node_parser.get_nodes_from_documents(documents)index VectorStoreIndex(nodes, embed_modelembed_model)query_engine index.as_query_engine(similarity_top_k5,streamingTrue,llmllm,node_postprocessorspostprocessors if postprocessors else [])return query_engine8. 节点解析器测试 我们使用不同的节点解析器如 TokenTextSplitter、SentenceSplitter 等对文档进行处理并测试其效果。对于 SentenceWindowNodeParser还需要使用 MetadataReplacementPostProcessor 进行后处理。 node_parsers [TokenTextSplitter(chunk_size1024, chunk_overlap20),SentenceSplitter(chunk_size512, chunk_overlap50),SentenceWindowNodeParser.from_defaults(window_size3,window_metadata_keywindow,original_text_metadata_keyoriginal_text),SemanticSplitterNodeParser(buffer_size1,breakpoint_percentile_threshold95,embed_modelembed_client),MarkdownNodeParser() ]for parser in node_parsers:if isinstance(parser, SentenceWindowNodeParser):postprocessors [MetadataReplacementPostProcessor(target_metadata_keywindow)]else:postprocessors Nonequery_engine build_index_and_query_engine(documents, embed_client, llm_client, parser, postprocessors)ask_question(question, query_engine)总结 通过优化代码结构、模块化处理、日志管理和环境变量管理代码的可读性和可维护性得到了显著提升。同时通过不同的节点解析器对文档进行处理可以更好地理解不同解析器的效果和适用场景。希望这篇博客对你理解和使用 llama_index 库有所帮助
http://www.w-s-a.com/news/682463/

相关文章:

  • 临沂品牌网站制作企业网站建设搜集资料
  • wordpress注册验证码手机网站优化
  • 往建设厅网站上传东西做衣服的教程网站有哪些
  • 网上商城网站设计免费咨询口腔科医生回答在线
  • 南京网站c建设云世家 s浏览器
  • 如何做镜像别人网站wordpress菜单对齐修改
  • 长春网站建设net企业公示信息查询官网
  • 金鹏建设集团网站可在哪些网站做链接
  • 电子产品网站开发背景网站关键词优化方案
  • 建网站论坛wordpress提交数据库错误
  • 国内网站建设公司开源网站系统
  • 网站开发公司上大连网站建设流程图
  • 银川网站seo宁波网
  • 个人备案网站会影响吗网站添加 备案
  • 网站建设与电子商务的教案关于旅游网站建设的方案
  • 电子商务网站建设设计原则找做网站找那个平台做
  • 天津高端品牌网站建设韶关网站建设墨子
  • Wordpress多站点为什么注册不了2008iis搭建网站
  • 天津高端网站制作建网站的公司服务
  • 温州网站推广优化类似淘宝的网站怎么做的
  • 网站建设实训考试什么网站做玩具的比较多
  • 上海网站建设特点怎样给公司做一个网站做推广
  • 流量网站怎么做的济南优化排名公司
  • 保定网站制作套餐设计师导航网站大全
  • 惠州 商城网站建设石家庄新闻广播在线收听
  • 洪山网站建设域名购买之后怎么做网站
  • 北京网站建设公司服务哪家好wap是什么意思?
  • 怎么看公司网站做的好不好哦wordpress页面目录下
  • 做装修业务呢有多少网站平台搭建是什么
  • 潍坊优化网站排名淘宝做网站被骗