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

wordpress建站事例珠海网站建设网络公司

wordpress建站事例,珠海网站建设网络公司,怎么在网站做推广,网站排名恢复前言 我在之前的几篇文章中写了如何使用Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用#xff0c;但是发现Langchain的几种和数据库交互的组件都不够让我满意#xff0c;虽然已经满足了大部分场景的需求#xff0c;但是问题还是很多#xff0c;比如…前言 我在之前的几篇文章中写了如何使用Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用但是发现Langchain的几种和数据库交互的组件都不够让我满意虽然已经满足了大部分场景的需求但是问题还是很多比如问题和数据库好不相关的时候程序生成错误的sql,导致报错sql智能体交互响应太慢等等最近使用了LlamaIndex中的sql交互组件NLSQLTableQueryEngine发现YYDS。就是我一直寻找的东西。既满足了响应速度又足够智能不会报错下面教大家如何使用Chainlit集成LlamaIndex实现网页和数据库交互的应用。 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 llama-index-retrievers-bm25~0.3.0执行以下命令安装依赖 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文件代码如下 此代码使用摘要索引和向量索引利用RetrieverQueryEngine 路由检索器根据问题分类提示选择摘要索引和向量索引进行索引。 import os import timeimport chainlit as cl from llama_index.core import SQLDatabase, Settings, PromptTemplate from llama_index.core.indices.struct_store import NLSQLTableQueryEngine from llama_index.core.prompts import PromptType from llama_index.embeddings.dashscope import DashScopeEmbedding, DashScopeTextEmbeddingModels, \DashScopeTextEmbeddingType from llama_index.llms.dashscope import DashScopeGenerationModels, DashScope from sqlalchemy import create_engineSettings.llm DashScope(model_nameDashScopeGenerationModels.QWEN_TURBO, api_keyos.environ[DASHSCOPE_API_KEY], max_tokens512 ) Settings.embed_model DashScopeEmbedding(model_nameDashScopeTextEmbeddingModels.TEXT_EMBEDDING_V2,text_typeDashScopeTextEmbeddingType.TEXT_TYPE_DOCUMENT, )engine create_engine(postgresqlpsycopg2://username:passwardip:5432/dbname)tables [blade_user, blade_role, blade_menu, exam_course, exam_data] # 准备数据 sql_database SQLDatabase(engine)# 创建大模型 llm DashScope(model_nameDashScopeGenerationModels.QWEN_MAX, api_keyos.environ[DASHSCOPE_API_KEY] )CUSTOM_TEXT_TO_SQL_TMPL (You are a {dialect} expert. Given an input question, first create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer. You can order the results by a relevant column to return the most interesting examples in the database.\n\nNever query for all the columns from a specific table, only ask for a few relevant columns given the question.\n\nPay attention to use only the column names that you can see in the schema description. Be careful to not query for columns that do not exist. Pay attention to which column is in which table. Also, qualify column names with the table name when needed. If there is a table whose column name is marked with is_deleted, the default value is is_deleted0You are required to use the following format, each taking one line:\n\nQuestion: Question here\nSQLQuery: SQL Query to run\nSQLResult: Result of the SQLQuery\nAnswer: Final answer here\n\nOnly use tables listed below.\n{schema}\n\nQuestion: {query_str}\nSQLQuery: )CUSTOM_TEXT_TO_SQL_PROMPT PromptTemplate(CUSTOM_TEXT_TO_SQL_TMPL,prompt_typePromptType.TEXT_TO_SQL, )# 构建查询引擎 query_engine NLSQLTableQueryEngine(sql_databasesql_database,text_to_sql_promptCUSTOM_TEXT_TO_SQL_PROMPT,tablestables,llmllm,streamingTrue,verboseTrue )cl.on_message async def on_message(message: cl.Message):start_time time.time()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} 秒)await msg.send() 默认使用open ai的sdk这里我换成国内阿里云的DashScope。官方教程中没有设置自定义文本转sql提示词示例这里我设置了自定义提示词因为数据库表中有is_deleted是否删除字段默认提示词生成sql是查询所有数据没有筛选被删除的数据每次提问必须加上类似正常数据的提示词才能给我想要的。我的复制默认的文本转sql的提示词增加了一句If there is a table whose column name is marked with is_deleted, the default value is is_deleted0默认返回的就是筛选后正常的数据。create_engine底层数据库连接是SQLAlchemy SQLAlchemy 支持的数据库都可以使用。SQLAlchemy 官网地址 SQLAlchemy 是一个非常灵活的 Python 库用于数据库操作并且它支持多种数据库系统。根据多个资料来源SQLAlchemy 支持的主要数据库系统包括但不限于PostgreSQL、MySQL、SQLite、Oracle、SQL Server、DB2、Firebird、Sybase 等。 代码解读 这段代码是一个使用了chainlit框架的Python脚本它结合了自然语言处理NLP与SQL查询生成技术旨在从数据库中以自然语言形式提出问题并返回相应的查询结果。以下是该段代码的功能分析 环境配置 导入必要的库和模块如os用于访问环境变量time用于计时chainlit用于构建交互式应用llama_index用于处理自然语言到SQL的转换以及sqlalchemy用于数据库连接。 设置LLM和Embedding Model 使用DashScope作为语言模型LLM和嵌入模型Embedding Model具体使用的是Qwen Turbo模型进行文本生成并使用TEXT_EMBEDDING_V2模型进行文本嵌入。这些模型是通过API密钥从DashScope服务获取的。 数据库连接 使用sqlalchemy创建了一个数据库引擎来连接到一个PostgreSQL数据库实例。数据库信息包括用户名、密码、IP地址、端口和数据库名。 定义SQL查询模板 定义了一个自定义的文本到SQL查询的提示模板Prompt Template。这个模板指导LLM如何将自然语言问题转换为SQL查询并如何解释查询结果以提供最终答案。模板包含了一些规则比如如何选择相关列避免查询不存在的列等。 构建查询引擎 基于上述配置创建了一个NLSQLTableQueryEngine实例它负责接收自然语言问题将其转换成SQL查询语句并执行查询后返回结果。 消息处理函数 使用chainlit框架中的on_message装饰器定义了一个异步函数on_message这个函数会在接收到用户消息时触发。它调用查询引擎处理消息并通过流式传输的方式将结果发送给用户。 总结来说这段代码实现了一个简单的自然语言查询系统用户可以输入自然语言形式的问题系统会自动将其转化为SQL查询并执行最后将结果以自然语言的形式返回给用户。此系统依赖于外部的服务如DashScope来进行自然语言处理并且需要正确配置数据库连接信息才能正常工作。 运行应用程序 要启动 Chainlit 应用程序请打开终端并导航到包含的目录app.py。然后运行以下命令 chainlit run app.py -w 该-w标志告知 Chainlit 启用自动重新加载因此您无需在每次更改应用程序时重新启动服务器。您的聊天机器人 UI 现在应该可以通过http://localhost:8000访问。自定义端口可以追加--port 80 启动后界面如下 总结 这些都是通过AI把问题经过思考后转换为sql查询语句执行sql查询后并将sql执行返回的数据格式化为自然语言返回给用户。这项技术可以毫不费力的接入其他业务系统的数据库进行数据的快速查询。 相关文章推荐 《Chainlit快速实现AI对话应用的界面定制化教程》 《Chainlit接入FastGpt接口快速实现自定义用户聊天界面》 《使用 Xinference 部署本地模型》 《Fastgpt接入Whisper本地模型实现语音输入》 《Fastgpt部署和接入使用重排模型bge-reranker》 《Fastgpt部署接入 M3E和chatglm2-m3e文本向量模型》 《Fastgpt 无法启动或启动后无法正常使用的讨论启动失败、用户未注册等问题这里》 《vllm推理服务兼容openai服务API》 《vLLM模型推理引擎参数大全》 《解决vllm推理框架内在开启多显卡时报错问题》 《Ollama 在本地快速部署大型语言模型可进行定制并创建属于您自己的模型》
http://www.w-s-a.com/news/492541/

相关文章:

  • 网站建设 服务内容 费用郴州网站建设公司哪里有
  • 网站关键词重要性育才网站建设
  • 网络安全形势下怎么建设学校网站wordpress最新主题下载
  • 自己建设网站需要什么条件.gs域名做网站怎么样
  • 网上做公益的网站推广手机卡返佣平台
  • 网站是公司域名是个人可以南京建设银行官方网站
  • 做互联网网站的会抓百度网盟推广 网站
  • 商务网站开发设计结论微信报名小程序怎么制作
  • 网站建设销售简历wordpress七比2
  • 制作网站报价工程项目查询哪个网站
  • 深圳移动网站建设制作公司网站建设的认识
  • 网站建设脚本语言有哪些想开网店哪个平台好
  • 视频网站用什么做的好深圳的小程序开发公司
  • 南京网站定制开发商城网站免费模板
  • 青海学会网站建设公司照片组合拼图
  • 中国建设银行福清分行网站爱站网权重查询
  • 外贸通网站建设网站建设7个主要流程图
  • 元气森林网络营销方式医疗网站优化怎么做
  • 手机网站制作报价表做网站公司做网站公司
  • 湖州网站设计吉林网站建设哪家好
  • 做存储各种环境信息的网站使用tag的网站
  • 阿里云用ip做网站网站开发员属于
  • 外链网盘下载南宁seo推广优化
  • 网站的推广方案有哪些此网站可能有
  • wordpress更改链接后网站打不开一键生成个人网站
  • 网站建设后台有哪些东西前端开发培训一般多少钱
  • 高端建设网站公司网站开发 源码
  • 企业网站的劣势园林景观设计公司简介范文
  • 网站建设程序招聘东营建设信息网登录
  • o2o是什么意思通俗讲seo与网站优化 pdf