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

站长之家字体网站推广的方法有哪些

站长之家字体,网站推广的方法有哪些,网站美工难做吗,哪家公司网站建设好点文章目录 概要案例案例1案例2案例3 概要 本案例介绍在数据库中表格数据上的问答系统的基本方法。将涵盖使用链(chains)和代理(agents)的实现。通过查询数据库中的数据并得到自然语言答案。两者之间的主要区别在于,我们…

文章目录

  • 概要
  • 案例
    • 案例1
    • 案例2
    • 案例3

概要

本案例介绍在数据库中表格数据上的问答系统的基本方法。将涵盖使用链(chains)和代理(agents)的实现。通过查询数据库中的数据并得到自然语言答案。两者之间的主要区别在于,我们的代理可以根据需要多次循环查询数据库来回答问题

实现思路:

  • 1.将问题转换为DSL查询:模型将用户输入转换为SQL查询
  • 2.执行SQL查询:执行查询。
  • 3.回答问题:模型使用查询结果响应用户输入

案例

案例1

利用大模型生成sql


import osfrom langchain.chains.sql_database.query import create_sql_query_chain
from langchain_community.chat_models import ChatZhipuAI
from langchain_community.utilities import SQLDatabase"""
利用大模型生成sql
"""# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1f19--Kxlr"
# 初始化智普 AI 模型
llm = ChatZhipuAI()
# sglalchemy初始化MySOL数据库的连接A11A1×5
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'test'
USERNAME = 'root'
PASSWORD = 'root'
# mysglclient驱动URL
MYSQL_URI = 'mysql+mysqldb://{}:{}@{}:{}/{}?charset=utf8mb4'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
db = SQLDatabase.from_uri(MYSQL_URI)
# 直接使用大模型和数据库整合,只能根据你的问题生成SQL
sql_chain = create_sql_query_chain(llm, db)
rest = sql_chain.invoke({'question': '请问:部门表有多少数据'})
print(rest)

结果:


E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\数据库\数据库整合.py 
``sql
SELECT COUNT(*) AS `department_count` FROM `department`
``
SQLResult:进程已结束,退出代码为 0

案例2

利用大模型生成sql,并执行sql得到最终结果


import os
from operator import itemgetterfrom langchain.chains.sql_database.query import create_sql_query_chain
from langchain_community.chat_models import ChatZhipuAI
from langchain_community.tools import QuerySQLDatabaseTool
from langchain_community.utilities import SQLDatabase
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplate
from langchain_core.runnables import RunnablePassthrough"""
利用大模型生成sql
"""# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1f19--dKxlr"
# 初始化智普 AI 模型,其他模型可能出现执行错误
llm = ChatZhipuAI(model='GLM-4-Plus')
# sglalchemy初始化MySOL数据库的连接A11A1×5
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'test'
USERNAME = 'root'
PASSWORD = 'root'
# mysglclient驱动URL
MYSQL_URI = 'mysql+mysqldb://{}:{}@{}:{}/{}?charset=utf8mb4'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
db = SQLDatabase.from_uri(MYSQL_URI)
# 直接使用大模型和数据库整合,只能根据你的问题生成SQL
sql_chain = create_sql_query_chain(llm, db)answer_prompt = PromptTemplate.from_template("""给定以下用户问题、SQL语句和SQL执行后的结果,回答用户问题。Question: {question}SQL Query: {query}SQL Result:{result}回答:"""
)
# 创建一个执行sql语句的工具
execute_sql_tool = QuerySQLDatabaseTool(db=db)
# 1、生成sql  2、执行sql
# 模版
chain = (RunnablePassthrough.assign(query=sql_chain).assign(result=itemgetter('query') | execute_sql_tool)| answer_prompt| llm| StrOutputParser()
)rest = chain.invoke(input={'question': '请问:部门表有多少条数据?'})
print(rest)

结果:


E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\数据库\数据库整合.py 
从您提供的SQL查询和假设的执行结果来看,查询本身是正确的,目的是统计`department`表中的数据条数。假设执行结果为`department_count`值为3,那么可以得出结论:**Answer: 部门表中有3条数据。**然而,您提到的错误信息 `(MySQLdb.ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '```sql\nSELECT COUNT(*) AS department_count FROM `department`;\n```\n\n假设执行' at line 1")` 表示在执行SQL语句时存在语法错误。这种错误通常是由于SQL语句的格式问题或额外的无效字符引起的。具体到这个错误,可能是因为在执行SQL语句时,包含了多余的标记或注释,例如```sql```这样的标记通常用于代码块表示,但不应该包含在执行的SQL语句中。为了确保SQL语句能正确执行,请确保只提交纯净的SQL代码,如下所示:``sql
SELECT COUNT(*) AS department_count FROM `department`;
``如果仍然遇到问题,请检查以下几点:
1. 确保SQL语句前后没有多余的字符或注释。
2. 确保使用的工具或环境支持该SQL语法。
3. 检查数据库连接和权限设置是否正确。希望这能帮助您解决问题!如果有更多细节或需要进一步的帮助,请提供更多信息。进程已结束,退出代码为 0

在这里插入图片描述

案例3

在案例2 的基础上使用代理实现


import osfrom langchain_community.agent_toolkits import SQLDatabaseToolkit
from langchain_community.chat_models import ChatZhipuAI
from langchain_community.utilities import SQLDatabase
from langchain_core.messages import SystemMessage, HumanMessage
from langgraph.prebuilt import create_react_agent"""
利用大模型生成sql
"""# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1--dKxlr"
# 初始化智普 AI 模型,其他模型可能出现执行错误
llm = ChatZhipuAI(model='GLM-4-Plus')
# sglalchemy初始化MySOL数据库的连接A11A1×5
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'test'
USERNAME = 'root'
PASSWORD = 'root'
# mysglclient驱动URL
MYSQL_URI = 'mysql+mysqldb://{}:{}@{}:{}/{}?charset=utf8mb4'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
db = SQLDatabase.from_uri(MYSQL_URI)# 创建工具
toolkit = SQLDatabaseToolkit(db=db, llm=llm)
tools = toolkit.get_tools()
# 使用agent完成整个数据库的整合
system_prompt = """
您是一个被设计用来与SOL数据库交互的代理。
给定一个输入问题,创建一个语法正确的SQL语句并执行,然后查看查询结果并返回答案
除非用户指定了他们想要获得的示例的具体数量,否则始终将SOL查询限制为最多10个结果
你可以按相关列对结果进行排序,以返回MySQL数据库中最匹配的数据。
您可以使用与数据库交互的工具。在执行查询之前,你必须仔细检查。如果在执行查询时出现错误,请重写查询并重试。
不要对数据库做任何DML语句(插入,更新,删除,删除等)首先,你应该查看数据库中的表,看看可以查询什么。
不要跳过这一步。
然后查询最相关的表的模式。
"""
system_message = SystemMessage(content=system_prompt)
# 创建代理
agent_sql_tool = create_react_agent(llm, tools=tools)resp = agent_sql_tool.invoke({'messages': [HumanMessage(content='请问:部门表有多少数据')]})
rest = resp['messages']
print(rest)
print('该响应结果元素个数:', len(rest))
print(rest[len(rest) - 1])

结果:


E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\数据库\代理数据库整合.py 
[HumanMessage(content='请问:部门表有多少数据', additional_kwargs={}, response_metadata={}, id='807cb8a7-e6a3-47c4-b25b-0b2ad27095b1'), AIMessage(content='', additional_kwargs={'tool_calls': [{'function': {'arguments': '{}', 'name': 'sql_db_list_tables'}, 'id': 'call_-8891223935282577451', 'index': 0, 'type': 'function'}]}, response_metadata={'token_usage': {'completion_tokens': 7, 'prompt_tokens': 634, 'total_tokens': 641}, 'model_name': 'GLM-4-Plus', 'finish_reason': 'tool_calls'}, id='run-7d059fc4-adbb-4e2f-bc6c-bdb244d6fe94-0', tool_calls=[{'name': 'sql_db_list_tables', 'args': {}, 'id': 'call_-8891223935282577451', 'type': 'tool_call'}]), ToolMessage(content='a, customer_data, department, employee, test1, user', name='sql_db_list_tables', id='81331f8d-15df-4284-8271-e01a268a2849', tool_call_id='call_-8891223935282577451'), AIMessage(content='', additional_kwargs={'tool_calls': [{'function': {'arguments': '{"query": "SELECT COUNT(*) FROM department"}', 'name': 'sql_db_query'}, 'id': 'call_-8891225687629570333', 'index': 0, 'type': 'function'}]}, response_metadata={'token_usage': {'completion_tokens': 15, 'prompt_tokens': 651, 'total_tokens': 666}, 'model_name': 'GLM-4-Plus', 'finish_reason': 'tool_calls'}, id='run-fc5a61de-1c14-485f-b234-dd97cf9931c6-0', tool_calls=[{'name': 'sql_db_query', 'args': {'query': 'SELECT COUNT(*) FROM department'}, 'id': 'call_-8891225687629570333', 'type': 'tool_call'}]), ToolMessage(content='[(4,)]', name='sql_db_query', id='9110469c-b518-4402-961a-49159c8d4211', tool_call_id='call_-8891225687629570333'), AIMessage(content='部门表中有4条数据。', additional_kwargs={}, response_metadata={'token_usage': {'completion_tokens': 9, 'prompt_tokens': 659, 'total_tokens': 668}, 'model_name': 'GLM-4-Plus', 'finish_reason': 'stop'}, id='run-9d2ecc1e-ef7f-4915-8c08-22835389fa06-0')]
该响应结果元素个数: 6
content='部门表中有4条数据。' additional_kwargs={} response_metadata={'token_usage': {'completion_tokens': 9, 'prompt_tokens': 659, 'total_tokens': 668}, 'model_name': 'GLM-4-Plus', 'finish_reason': 'stop'} id='run-9d2ecc1e-ef7f-4915-8c08-22835389fa06-0'进程已结束,退出代码为 0
http://www.dtcms.com/wzjs/114145.html

相关文章:

  • 国外被动收入网站做的好的收录查询 站长工具
  • 黄页推广网站下载培训网络营销机构
  • 华为公司网站建设方案模板下载西安百度seo推广电话
  • 腾讯云ADM怎么做网站怀化网站seo
  • 微课网站开发推广工具有哪些
  • 做网站那个公司好免费下载百度
  • 网站建设一般多少钱要如何选择奉化网站关键词优化费用
  • 汉中网站建设公司推荐上海优化排名网站
  • 网站模板可以自己做新产品推广策划方案
  • 平度168网站建设深圳整合营销
  • 镇江网站优化青岛快速排名优化
  • 上海网站制作服务襄阳网站推广优化技巧
  • 大连网站制作姚喜运成都百度网站排名优化
  • 易县做网站的在哪大数据智能营销
  • 编程网站题库企业宣传视频
  • 网站如何做路由器今天的病毒感染情况
  • 云一网站设计百度灰色关键词排名代做
  • 赚钱的网站做任务软文推广模板
  • 500元制作网站2024的新闻有哪些
  • 手机电影网站建设网络推广营销方案100例
  • 网易企业邮箱登录入口网页版网站seo优化课程
  • wordpress的用户注册关键词优化报价
  • 手机网站用什么软件做的好武汉搜索引擎排名优化
  • 织梦wap模板自适应手机网站dedecms模板下载策划营销推广方案
  • 湖北企业年报网上申报入口seo优化范畴
  • 网站核查怎么抽查市场推广计划怎么写
  • 合肥企业网站建设公司日本产品和韩国产品哪个好
  • 上海市交通城乡建设委员会网站搜索引擎优化的主题
  • 免费网站的资源可以发公众号吗网站及推广
  • 成都网站开发团队宁波seo如何做推广平台