一、Text2SQL
SQLDatabaseChain,支持将数据库Schema动态注入提示词,实现端到端的SQL生成与执行。LangChain可以自动提取数据库表结构(Schema)作为上下文。支持多轮对话修正SQL语句。fromlangchain.utilitiesimportSQLDatabasefromlangchain.chainsimportSQLDatabaseChainfromlangchain_community.llmsimportOpenAIdb=SQLDatabase.from_uri("sqlite:///sales.db")llm=OpenAI(temperature=0)chain=SQLDatabaseChain.from_llm(llm,db,verbose=True)response=chain.run("2024年销售额超过100万的产品是什么?")SELECTp.name,SUM(o.sales)AStotal_salesFROMordersoJOINproductspONo.product_id=p.idWHEREYEAR(o.date)=2023GROUPBYp.idHAVINGtotal_sales>1000000;
二、Text2API
fromlangchain.chainsimportAPIChainfromlangchain_community.llmsimportOpenAIllm=OpenAI(temperature=0)api_docs="""API文档:-发送邮件:POST/send_email参数:to(收件人),subject(主题),content(内容)-查询天气:GET/weather参数:city(城市),date(日期)"""chain=APIChain.from_llm_and_api_docs(llm,api_docs,verbose=True)response=chain.run("给Allen发邮件,主题是会议提醒,内容为明天下午2点开会。")如何实现Text2API?通过自然语言处理技术进行语义解析(含意图识别、实体抽取、上下文理解),结合预加载的API文档信息,利用大语言模型(LLM)生成符合语法规范的API调用请求。
1. API目录管理:维护API文档(端点、参数、权限)。例如:邮件API文档:POST /send_email 参数:to (str), subject (str), content (str) 权限:需用户OAuth令牌 2. 意图识别:模型解析用户指令,匹配目标API。例如:“给Allen发邮件,主题是项目开发进度,内容为‘本周完成80%’” → 调用/send_email。{"endpoint":"/send_email","params":{"to":"zhangsan@company.com","subject":"项目进度","content":"本周完成80%"}}| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |