基于langchain使用百度Wenxin自然语言处理MySQL

发布时间 2023-11-21 15:33:56作者: sevck

昨天下午同事刚好发来langchain使用OPENAI 来自然语言处理sqlite

https://youtu.be/Tubl4scsXc4?si=Y_zOIrbkZVtndNoP

 

刚好有时间可以测一测玩玩

博主github:https://github.com/clairelovesgravy/langchain_database_search

目前部分代码还是不太兼容,例如新版本langchain的SQLDatabase和SQLDatabaseChain已经修改到其他的库里了,博主的MYSQL链接问题等等。

新版要求python要高于3.7以上,较低版本无法运行,有包会冲突。

pip install openai langchain langchain-wenxin pymysql langchain_experimental

 

例如代码中的

老版本:
ImportError: cannot import name 'SQLDatabaseChain' from 'langchain'
新版本:
from langchain_experimental.sql import SQLDatabaseChain

老版本:
from langchain import OpenAI, SQLDatabase

新版本:
from langchain.utilities import SQLDatabase

老版本
db = SQLDatabase.from_uri(
f'mysql://{sys.db_user}:{sys.db_password}@{sys.db_host}:{int(sys.db_port)}/{sys.db_db_name}')
新版本:
db = SQLDatabase.from_uri(
f'mysql+pymysql://{sys.db_user}:{sys.db_password}@{sys.db_host}:{int(sys.db_port)}/{sys.db_db_name}')

测试OPENAI的key也没了,修改为国内的文心一言,本想直接找现成的使用看看效果,发现文章基本没有,干脆直接自己写个demo把。

使用的LLM模型为:ernie-bot-turbo, 使用国内的文心一言还不能直接将文本转换为SQL,经常提示报错,因为返回了```sql   xxxx``` 格式直接带入查询,当SQL使用,肯定报错。

看视频ChatGPT可以直接使用(此处不严谨,没亲自尝试3.5和4是否可以,视频可以,有待论证)

后参考官方文档:

https://python.langchain.com/docs/use_cases/qa_structured/sql

国内

可以使用create_sql_query_chain来完成SQL的自然语言处理:

测试代码:

https://github.com/sevck/langchain_demo

最终效果: