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

做英文网站赚钱企业网站制作

做英文网站赚钱,企业网站制作,网站开发网站加载慢,wordpress最新文章插件一、前言 目前#xff0c;大模型的一个热门应用方向Text2SQL#xff0c;它可以帮助用户快速生成想要查询的SQL语句#xff0c;再结合可视化技术可以降低使用数据的门槛#xff0c;更便捷的支持决策。本文将从以下四个方面介绍LLM在Text2SQL应用上的基础实践。 Text2SQL概…一、前言 目前大模型的一个热门应用方向Text2SQL它可以帮助用户快速生成想要查询的SQL语句再结合可视化技术可以降低使用数据的门槛更便捷的支持决策。本文将从以下四个方面介绍LLM在Text2SQL应用上的基础实践。 · Text2SQL概述 · LangChain基础知识 · 基于SQLDatabaseChain的Text2SQL实践 · 后续计划 二、Text2SQL概述 Text-to-SQL或者Text2SQL顾名思义就是把文本转化为SQL语言更学术一点的定义是把数据库领域下的自然语言Natural LanguageNL问题转化为在关系型数据库中可以执行的结构化查询语言Structured Query LanguageSQL因此Text-to-SQL也可以被简写为NL2SQL。 · 输入自然语言问题比如“查询表t_user的相关信息结果按id降序排序只保留前10个数据 ” · 输出SQL比如 “SELECT * FROM t_user ORDER BY id DESC LIMIT 10” Text2SQL应用主要是帮助用户减少开发时间降低开发成本。“打破人与结构化数据之间的壁垒”即普通用户可以通过自然语言描述完成复杂数据库的查询工作得到想要的结果。 基于LLM的应用开发基本架构如上图本文介绍以LangChain OpenAI RDB的方式来实现Text2SQL的实践方案。 三、LangChain基础知识 LangChain是一个面向大语言模型的应用开发框架如果将大语言模型比作人的大脑那么可以将LangChain可以比作人的五官和四肢它可以将外部数据源、工具和大语言模型连接在一起既可以补充大语言模型的输入也可以承接大语言模型的输出。 LangChain提供各种不同的组件帮助使用LLM如下图所示核心组件有Models、Indexes、Chains、Memory、Prompt以及Agent。 3.1 Models LangChain本身不提供LLM提供通用的接口访问LLM可以很方便的更换底层的LLM以及自定义自己的LLM。主要有2大类的Models 1LLM将文本字符串作为输入并返回文本字符串的模型类似OpenAI的text-davinci-003 2Chat Models由语言模型支持将聊天消息列表作为输入并返回聊天消息的模型。一般使用的ChatGPT以及Claude为Chat Models。 与模型交互可以通过给予Prompt的方式LangChain通过PromptTemplate的方式方便我们构建以及复用Prompt。 代码示例如下 from langchain import PromptTemplate# 定义提示模板 prompt PromptTemplate(input_variables[question], template简洁和专业的来回答用户的问题。如果无法从中得到答案请说 “根据已知信息无法回答该问题” 或 “没有提供足够的相关信息”不允许在答案中添加编造成分答案请使用中文。 问题是{question},)print(prompt.format_prompt(question如何进行数据治理))3.2 Indexes 索引和外部数据进行集成用于从外部数据获取答案。如下图所示主要的步骤 · 通过Document Loaders加载各种不同类型的数据源 · 通过Text Splitters进行文本语义分割 · 通过Vectorstore进行非结构化数据的向量存储 · 通过Retriever进行文档数据检索 3.3 Chains LangChain通过chain将各个组件进行链接以及chain之间进行链接用于简化复杂应用程序的实现。其中主要有LLMChain、SQLDatabase Chain以及Sequential Chain。 3.3.1 LLMChain 最基本的链为LLMChain由PromptTemplate、LLM和OutputParser组成。LLM的输出一般为文本OutputParser用于让LLM结构化输出并进行结果解析方便后续的调用。 其实现原理如图所示包含三步 · 输入问题 · 拼接提示根据提示模板将问题转化为提示 · 模型推理输出答案 代码如下所示 from langchain.prompts import PromptTemplate from langchain.chains import LLMChain from langchain import OpenAI import osos.environ[OPENAI_API_KEY] Your openai key # 定义模型 llm OpenAI(temperature0)# 定义提示模板 prompt PromptTemplate(input_variables[question], template简洁和专业的来回答用户的问题。如果无法从中得到答案请说 “根据已知信息无法回答该问题” 或 “没有提供足够的相关信息”不允许在答案中添加编造成分答案请使用中文。问题是{question},) # 定义chain chain LLMChain(llmllm, promptprompt, verboseTrue) # 执行chain print(chain.run(如何开展数据治理))3.3.2 SQLDatabaseChain SQLDatabaseChain能够通过模型自动生成SQL并执行其实现原理如图所示包含如下过程 · 输入问题 · 获取数据库SchemaSchema包含数据库所有表的建表语句和数据示例LangChain支持多种关系型数据库包括MariaDB、MySQL、SQLite、ClickHouse、PrestoDB等 · 拼接提示根据提示模板将问题、数据库Schema转化为提示并且提示中包含指示要求模型在理解问题和数据库Schema的基础上能够按一定的格式输出查询SQL、查询结果和问题答案等 · 模型推理这一步预期模型根据问题、数据库Schema推理、输出的答案中包含查询SQL并从中提取出查询SQL · 执行查询SQL从数据库中获取查询结果 · 拼接提示和上一次拼接的提示基本一致只是其中的提示中包含了前两步已获取的查询SQL、查询结果 · 模型推理这一步预期模型根据问题、数据库Schema、查询SQL和查询结果推理出最终的问题答案。 3.3.3 SequentialChain SequentialChains是按预定义顺序执行的链。SimpleSequentialChain为顺序链的最简单形式其中每个步骤都有一个单一的输入/输出一个步骤的输出是下一个步骤的输入。SequentialChain为顺序链更通用的形式允许多个输入/输出。 3.4 Memory 正常情况下Chain无状态的每次交互都是独立的无法知道之前历史交互的信息。LangChain使用Memory组件保存和管理历史消息这样可以跨多轮进行对话在当前会话中保留历史会话的上下文。Memory组件支持多种存储介质可以与Mongo、Redis、SQLite等进行集成以及简单直接形式就是Buffer Memory。 3.5 Agent Agent字面含义就是代理如果说LLM是大脑Agent就是代理大脑使用工具Tools。目前的大模型一般都存在知识过时、逻辑计算能力低等问题通过Agent访问工具可以去解决这些问题。目前这个领域特别活跃诞生了类似AutoGPT、BabyAGI、AgentGPT等一堆优秀的项目。传统使用LLM需要给定Prompt一步一步地达成目标通过Agent是给定目标其会自动规划并达到目标。 四、基于SQLDatabaseChain的Text2SQL实践 4.1 简介 LangChain提供基于LLM的SQLDatabaseChain可以利用LLM的能力将自然语言的query转化为SQL连接DB进行查询并利用LLM来组装润色结果返回最终answer。 在后台LangChain 使用SQLAlchemy连接到 SQL 数据库。因此SQLDatabaseChain可以与 SQLAlchemy 支持的任何 SQL 方言一起使用例如 MS SQL、MySQL、MariaDB、PostgreSQL、Oracle和 SQLite。 4**.**2 数据准备 本案例使用SQLite 和示例Chinook 数据库用户可按照https://database.guide/2-sample-databases-sqlite/ 上的说明进行设置。Chinook表示一个数字多媒体商店包含了顾客Customer、雇员Employee、歌曲Track、订单Invoice及其相关的表和数据数据模型如下图所示。 4.3实践过程 需求 测试中文提问“总共有多少员工”即英文提问“How many employees are there?” 期望 模型先给出查询Employee表记录数的SQL再根据查询结果给出最终的答案。 1测试中文提问代码如下所示 from langchain.llms import OpenAI from langchain.utilities import SQLDatabase from langchain_experimental.sql import SQLDatabaseChain import osos.environ[OPENAI_API_KEY] Your openai keydb SQLDatabase.from_uri(sqlite:///..../Chinook.db) llm OpenAI(temperature0, verboseTrue) db_chain SQLDatabaseChain.from_llm(llm, db, verboseTrue) db_chain.run(总共有多少员工?)输出结果如下 这里我们使用商业化的OpenAI并将其temperature设为0因为查询DB不太需要创造性和多样性。从返回的过程来看自然语言被翻译成了SQL得到查询结果后解析包装结果最终返回我们可以理解的答案。这里LLM成功将“总共”转成select count(*)并准确地识别出表名且最终组装出正确的结果。 注意 对于数据敏感项目可以在 SQLDatabaseChain 初始化中指定 return_directTrue以直接返回 SQL 查询的输出而无需任何其他格式设置。这样可以防止 LLM 看到数据库中的任何内容。但请注意默认情况下LLM 仍然可以访问数据库方案即所用方言、表名和列名。 2测试英文提问也可以得到我们想要的结果 通过上例我们可以借助LangChain提供的SQLDatabaseChain轻松地连接LLM与Database自然语言的方式输入自然语言的方式输出借助LLM的强大能力来理解问题、生成SQL查询数据并输出结果。 五、后续计划 随着大模型的发展LangChain是目前最火的LLM开发框架之一能和外部数据源交互、能集成各种常用的组件等等大大降低了LLM应用开发的门槛。基于SQLDatabaseChain实现的Text2SQL只是最基础的实践方式但对于逻辑复杂的查询在稳定性、可靠性、安全性方面可能无法达到预期比如输出幻觉问题、数据安全问题。如何解决或减少该类问题的出现可改进的措施和方案在后续专题中继续讨论大家一起群策群力。总之实现高稳定、高可靠的基于LLM的应用是一个持续改进的过程是一个多种技术相结合的过程。 参考文献 https://docs.langchain.com/docs/ https://platform.openai.com/ https://database.guide/2-sample-databases-sqlite/ https://www.langchain.asia/modules/chains/examples/sqlite https://mp.weixin.qq.com/s/pgRC71IkSXrOjZg3W9V72g https://zhuanlan.zhihu.com/p/640580808
http://www.zqtcl.cn/news/125961/

相关文章:

  • h5视频网站模板中国十大企业培训机构排名
  • 强的网站建设明细报价表网站建设推广新业务
  • 哪里有免费做网站wordpress 在文章前面加序号
  • 263企业邮箱登录入口首页seo公司哪家
  • 哈尔滨建设银行网站岳阳建设网站
  • 中山网页网站设计模板自己做的网站怎么让别人看见
  • 建设装饰网站出口跨境电商平台
  • 陕西网站建设公司排名WordPress图片生成文章
  • t恤定制网站wordpress 分类 seo
  • 万网网站空间多少钱一年做哪些网站流量最大
  • seo网站优化服务网站开发电脑
  • 宿迁怎样建设网站wordpress 分类目录 标签
  • 惠州双语网站建设费用seo搜索工具栏
  • 做ppt会去什么网站找图网页制作与网站建设试题
  • 如何用ai给网站做logo宝安网站制作公司
  • sem是什么职业岗位单页式网站 seo
  • 做网站用什么版本系统国外有哪些设计网站推荐
  • dz论坛怎么做视频网站吗哪些公司是wordpress
  • 在微信怎样搞做微视频网站商城小程序模板源码完整版
  • h5跟传统网站有啥区别读取wordpress最新文章
  • 网站推广120最超值的网站建设
  • 移动网站制作公司如何开公司做网站
  • 网站建设 青海试题wordpress的特点
  • 源码如何做网站宽甸县建设局网站
  • 用dw做的网页怎么连到网站上企业网站备案资料填写单
  • 中文 网站模板企业怎么建设网站
  • 建设户外腰包网站哪个网站注册域名好
  • 六安网站建设价格小学生编程网课前十名
  • 绵阳网站建设信赖辉煌wordpress多账号权限
  • 网站外链快速建设网站维护要学多久