在软工三迭代三中,要求和大语言模型进行自然语言交互,但是这种交互是基于数据库中的内容的,例如“相比于昨日,时政类新闻同比增长多少?”。在我们英明神武的组长的带领下,我们成功找到了使用langChain来实现。
经过一个晚上查阅资料,我最终决定使用通义千问来实现,来看一个简单的示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| import os from langchain_community.llms import Tongyi
from langchain_community.utilities import SQLDatabase from langchain_experimental.sql import SQLDatabaseChain
def chain_tongyi(db_info): llm = Tongyi(model='qwen-turbo')
db = SQLDatabase.from_uri(f"mysql+pymysql://{db_info['user']}:{db_info['password']}@{db_info['host']}/{db_info['name']}") db_chain = SQLDatabaseChain.from_llm(llm=llm, db=db, verbose=True, use_query_checker=False)
questions = "发表数量前五的是哪些?" response = db_chain.invoke(questions) print('>>问题:', questions)
print('>>answer:', response)
if __name__ == "__main__": os.environ["DASHSCOPE_API_KEY"] = "" db_info = { 'host': '', 'name': '', 'user': '', 'password': '' }
chain_tongyi(db_info)
|
然后就可以愉快的和大语言模型进行问答了,例如询问发布数量前五的媒体