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

网站备案图标爱站网seo查询

网站备案图标,爱站网seo查询,竞价托管推广公司,济宁嘉祥网站建设前言 之前使用Chainlit集成LlamaIndex并使用通义千问大语言模型的API接口#xff0c;实现一个基于文档文档的网页对话应用。 可以点击我的上一篇文章《Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用》 查看。 本次针对上一次的代码功能进一步的完善…前言 之前使用Chainlit集成LlamaIndex并使用通义千问大语言模型的API接口实现一个基于文档文档的网页对话应用。 可以点击我的上一篇文章《Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用》 查看。 本次针对上一次的代码功能进一步的完善和增强。主要改进完善异步处理和数据库知识来源。 LlamaIndex 简介 LlamaIndex是一个数据框架它主要为基于大语言模型LLM的应用程序设计允许这些应用程序摄取、结构化并访问私有或特定领域的数据。这种框架对于那些希望利用LLM的强大能力来处理自身专属数据集的组织来说尤其有用。由于大多数公开的大语言模型都是在大量的公共数据上训练的它们缺乏对用户特定数据的理解而这正是LlamaIndex发挥作用的地方。 LlamaIndex支持Python和TypeScript使得开发者可以通过使用这些编程语言来集成和操作数据。它不仅提供了一个与LLM交互的自然语言接口还允许用户安全地将自己的数据注入到LLM中以增强模型的响应能力和准确性。 LlamaIndex的一些关键特点包括 上下文增强LlamaIndex是一个检索增强生成RAG系统意味着它可以使用外部数据来增强模型生成的答案。易用性作为一个开发者友好的接口LlamaIndex简化了将外部数据连接到LLM的过程。灵活性支持多种数据源类型包括API、PDF文件、文档以及SQL数据库。安全性确保私有数据的安全接入不会被泄露给模型训练过程。可组合性允许在不同级别定义索引比如单个文档级别的索引或文档组级别的索引。 总的来说LlamaIndex旨在帮助开发人员和企业更好地利用现有的数据资源通过与先进的LLM相结合创造出更加智能化的应用和服务。 LlamaIndex官方地址 https://docs.llamaindex.ai/en/stable/ 快速上手 创建一个文件例如“chainlit_chat” mkdir chainlit_chat进入 chainlit_chat文件夹下执行命令创建python 虚拟环境空间(需要提前安装好python sdk。 Chainlit 需要python3.8。,具体操作由于文章长度问题就不在叙述自行百度)命令如下 python -m venv .venv这一步是避免python第三方库冲突省事版可以跳过.venv是创建的虚拟空间文件夹可以自定义 接下来激活你创建虚拟空间命令如下 #linux or mac source .venv/bin/activate #windows .venv\Scripts\activate在项目根目录下创建requirements.txt内容如下 chainlit llama-index-core llama-index-llms-dashscope llama-index-embeddings-dashscope执行以下命令安装依赖 pip install -r .\requirements.txt安装后项目根目录下会多出.chainlit 和.files文件夹和chainlit.md文件 代码创建 只使用通义千问的DashScope模型服务灵积的接口 在项目根目录下创建.env环境变量配置如下 DASHSCOPE_API_KEYsk-api_keyDASHSCOPE_API_KEY 是阿里dashscope的服务的APIkey代码中使用DashScope的sdk实现所以不需要配置base_url。默认就是阿里的base_url。阿里模型接口地址 https://dashscope.console.aliyun.com/model 在项目根目录下创建app.py文件代码如下 import os import timeimport chainlit as cl from llama_index.core import (Settings,VectorStoreIndex,SimpleDirectoryReader, load_index_from_storage, StorageContext, ) from llama_index.core.node_parser import SentenceSplitter from llama_index.embeddings.dashscope import DashScopeEmbedding, DashScopeTextEmbeddingModels, \DashScopeTextEmbeddingType from llama_index.llms.dashscope import DashScope, DashScopeGenerationModelsSettings.llm DashScope(model_nameDashScopeGenerationModels.QWEN_TURBO, api_keyos.environ[DASHSCOPE_API_KEY] ) Settings.embed_model DashScopeEmbedding(model_nameDashScopeTextEmbeddingModels.TEXT_EMBEDDING_V2,text_typeDashScopeTextEmbeddingType.TEXT_TYPE_DOCUMENT, ) Settings.node_parser SentenceSplitter(chunk_size512, chunk_overlap20) Settings.num_output 512 Settings.context_window 3900cl.cache def get_vector_store_index():storage_dir ./storage_defaultif os.path.exists(storage_dir):storage_context StorageContext.from_defaults(persist_dirstorage_dir)index load_index_from_storage(storage_context)else:documents SimpleDirectoryReader(./data_file).load_data(show_progressTrue)index VectorStoreIndex.from_documents(documents)index.storage_context.persist(persist_dirstorage_dir)return indexvector_store_index get_vector_store_index()cl.on_chat_start async def start():await cl.Message(authorAssistant, content你好! 我是泰山AI智能助手. 有什么可以帮助你的吗?).send()cl.on_message async def main(message: cl.Message):start_time time.time()query_engine vector_store_index.as_query_engine(streamingTrue, similarity_top_k5)msg cl.Message(content, authorAssistant)res await query_engine.aquery(message.content)async for token in res.response_gen:await msg.stream_token(token)print(f代码执行时间: {time.time() - start_time} 秒)source_names []for idx, node_with_score in enumerate(res.source_nodes):node node_with_score.nodesource_name fsource_{idx}source_names.append(source_name)msg.elements.append(cl.Text(contentnode.get_text(), namesource_name, displayside))await msg.stream_token(f\n\n **数据来源**: {, .join(source_names)})await msg.send()代码中的persist_dirstorage_dir 不设置的默认是 ./storage.代码中的 SentenceSplitter(chunk_size512, chunk_overlap20) ,chunk_size是将长文档分割的文本块的大小chunk_overlap 是和上下文本块的重合文本的大小。 代码解读 这段代码使用了chainlit和llama_index两个Python库来创建一个基于文档的问答系统。下面是对代码段的解释 导入必要的模块 os 和 time 是Python标准库的一部分分别用于操作系统相关的功能和计时。chainlit 是一个用于快速构建交互式AI应用的库。llama_index 是一个框架用于构建索引并进行文档检索。 配置llama_index的核心设置 设置了使用的LLM大语言模型为DashScope的Qwen Turbo版本并通过环境变量获取API密钥。设置了嵌入模型Embedding Model为DashScope的文本嵌入模型并指定了模型类型。使用SentenceSplitter来分割文本节点定义了块大小和重叠。定义了输出长度和上下文窗口大小。 缓存函数get_vector_store_index() 这个函数负责加载或创建一个向量存储索引。如果存储目录存在则从该目录加载已有的索引否则从指定的数据文件夹读取文档并创建新的索引。 使用chainlit装饰器定义事件处理函数 cl.on_chat_start 在聊天开始时发送欢迎消息。cl.on_message 在接收到用户消息时触发使用向量索引来查询相关性最高的文档并将结果流式传输给用户。同时显示每个答案片段的来源。 主逻辑部分 创建一个流式查询引擎设置相似度搜索的前k个结果。当接收到消息时使用查询引擎异步查询并流式传输响应到用户。计算执行时间并记录下每个源文档的名字以便后续引用。将每个源文档的内容作为元素附加到消息中并在最后告知用户数据来源。 这个程序提供了一个基于向量存储索引的问答系统的基本框架可以用于从大量的文档中提取信息以回答用户的问题。 在项目根目录下创建data_file文件夹 将你的文件放到这里代码中设置的支持pdf、doc、csv 、txt格式的文件后续可以根据自己的需求增加更多langchain带有很多格式文件的加载器可以自行修改代码。 运行应用程序 要启动 Chainlit 应用程序请打开终端并导航到包含的目录app.py。然后运行以下命令 chainlit run app.py -w 该-w标志告知 Chainlit 启用自动重新加载因此您无需在每次更改应用程序时重新启动服务器。您的聊天机器人 UI 现在应该可以通过http://localhost:8000访问。自定义端口可以追加--port 80 启动后界面如下 后续会出关于LlamaIndex高级检查的技术文章教程感兴趣的朋友可以持续关注我的动态 相关文章推荐 《Chainlit快速实现AI对话应用的界面定制化教程》 《Chainlit接入FastGpt接口快速实现自定义用户聊天界面》 《使用 Xinference 部署本地模型》 《Fastgpt接入Whisper本地模型实现语音输入》 《Fastgpt部署和接入使用重排模型bge-reranker》 《Fastgpt部署接入 M3E和chatglm2-m3e文本向量模型》 《Fastgpt 无法启动或启动后无法正常使用的讨论启动失败、用户未注册等问题这里》 《vllm推理服务兼容openai服务API》 《vLLM模型推理引擎参数大全》 《解决vllm推理框架内在开启多显卡时报错问题》 《Ollama 在本地快速部署大型语言模型可进行定制并创建属于您自己的模型》
http://www.hkea.cn/news/14307432/

相关文章:

  • 网站 简约php商城网站的要求与数据
  • 网站建设海淀区招聘网站分析报告怎么做
  • 数据网站怎么做的做网站需要找什么客户
  • 什么网站可以接室内设计做做竞价网站用什么系统好
  • 图片网站 代码企业开办网站
  • 江门网站建设套餐网站模版 拓
  • 一个模拟做实验的网站图片瀑布流wordpress
  • 医院网站建设 利法拉网络制作应用的网站
  • 宁夏网站建设一条龙安阳seo网站优化
  • 有域名了也备案了怎么做网站电子商务公司网站设计
  • 建设网站的建设费用包括哪些内容网站改成响应式
  • 聊天网站站怎么做移动端网站没有icp
  • 镇平微网站建设怎么压缩网站
  • 怎么做音乐网站沈阳男科医院哪家好一些
  • 连云港专业做网站城市分站cms
  • 用摄像头直播网站怎么做做影视网站有什么风险
  • 怎么建国外网站wordpress cg主题
  • 亳州做网站的公司网站建设试用
  • wordpress首页页面seo网站优化排名
  • 哪里可以做寄生虫网站合肥网络科技有限公司做网站
  • 响应式网站视频重庆网站建设公司 菠拿拿
  • 做网站 空间还是服务器展示型网站有哪些内容
  • python 网站开发 环境网站域名的所有权
  • 自助式建网站wordpress用户权限说明
  • 番禺高端网站建设公司wordpress怎么做链接
  • 做网站主机电脑浙江省建设厅干部学校网站
  • 来个网站吧好人一生平安2021公司网站谁负责做
  • win7做本地网站2010年青海省建设厅网站
  • 企业网站外包托管推广建设部注册网站
  • 给个网站最新的2021企业网站怎样优化