昨天下午同事刚好发来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以上,较低版本无法运行,有包会冲突。本地测试环境:Python 3.10.12
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
最终效果:
【版权所有@Sevck 博客地址http://www.cnblogs.com/sevck】 可以转载,注明出处.