Langchain二次开发专栏

  • 【Langchain系列一】常用大模型的key获取与连接方式
  • 【Langchain系列二】LangChain+Prompt +LLM智能问答入门
  • 【Langchain系列三】GraphGPT——LangChain+NebulaGraph+llm构建智能图数据库问答系统
  • 【Langchain系列四】RAG——基于非结构化数据库的智能问答
  • 【Langchain系列五】DbGPT——Langchain+PG构建结构化数据库智能问答系统
  • 【Langchain系列六】Langchain+Gradio界面化
  • 【Langchain系列七】Langchain+FastAPI(字符串输出与OpenAI规范流式输出)+FastGPT

1. 官方资料

  • 构建一个基于SQL数据的问答系统
  • 构建基于SQL数据的问答系统

2. 安装依赖

pip install langchain langchain_community pyjwt langgraph psycopg2

3. 完整代码

import os
import re
import time
from operator import itemgetterfrom langchain.chains.sql_database.query import create_sql_query_chain
from langchain_community.agent_toolkits import SQLDatabaseToolkit
from langchain_community.chat_models.zhipuai import ChatZhipuAI
from langchain_community.tools import QuerySQLDataBaseTool
from langchain_community.utilities import SQLDatabase
from langchain_core.messages import AIMessage, SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate, ChatPromptTemplate, MessagesPlaceholder
from langchain_core.runnables import RunnablePassthrough
from langchain_ollama import ChatOllama
from langgraph.prebuilt import create_react_agent# 设置OpenAI API密钥(GLM-4-Flash是免费模型,其它模型会消耗token,智谱的是目前免费模型最好的)
os.environ["ZHIPUAI_API_KEY"] = "你的key"
# llm = ChatZhipuAI(model="GLM-4-Flash", temperature=0.5)
# 本地模型也可以,但是glm4(9b)的效果明显优于qwen2.5:7b,和线上GLM-4-Flash的差不多
# llm=ChatOllama(base_url="http://localhost:11434", model="qwen2.5:7b", temperature=0.5)
llm = ChatOllama(base_url="http://localhost:11434", model="glm4:latest", temperature=0.5)
# qwen 效果有点差,罗里吧嗦还不对
# os.environ["DASHSCOPE_API_KEY"] = "密钥"
# llm = ChatTongyi(model="qwen-turbo", verbose=True)
# 讯飞星火(貌似不支持数据库的智能问答,会报错找不到model kwords
# llm = ChatSparkLLM(spark_app_id='应用id',spark_api_key='应用key',spark_api_secret='应用密钥',spark_llm_domain='generalv3.5')ai_db = SQLDatabase.from_uri("postgresql://postgres:123456@localhost:5433/ai_data",include_tables=['engineering_defect_detail'])def query_with_agent(q: str):"""基于代理的agent+提示词的查询优化(给定提示词后,可以解决枚举问题,但是给出的答案不是基于sql真实执行的结果):return:"""prompt = '''Given an input question, first create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer.Use the following format strictly:Question: "Question here"SQLQuery: "SQL Query to run"SQLResult: "The actual result after executing the SQLQuery in the database"Answer: "Final answer here"Only use the following tables:['engineering_defect_detail(pk_defect_id, defect_component_id (部件), defect_component_type_id (部件种类), defect_position_id (部位), defect_description_id (缺陷描述), message (缺陷描述), detail (详情), levl ('1'一般,'2'严重,'3'危急), type ('0'可见光,'1'红外线), tower_name (杆塔名称), contri_company_name (出资单位名称), property_company_name (资产单位名称), maintain_company_name (运维单位名称), start_tower_no (起始杆号), end_tower_code (终止杆号), search_defect_name (查缺发现人), search_defect_num (查缺发现人人资编码), polling_time (

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96228.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96228.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96228.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生信分析自学攻略 | R语言数据类型和数据结构

在前面两篇文章中,我们已经成功搭建了R和RStudio这一强大的生信分析平台。然而,工具再好,若不懂得如何“放置”和“理解”你的数据,一切都将寸步难行。今天,我们将学习R语言最重要的部分——数据类型(Data …

Python工程与模块命名规范:构建可维护的大型项目架构

目录 Python工程与模块命名规范:构建可维护的大型项目架构 引言:命名的重要性 在软件开发中,命名可能是最容易被忽视但却是最重要的实践之一。根据2023年对Python开源项目的分析,超过35%的维护问题与糟糕的命名约定直接相关。一个…

Props 与 State 类型定义

下面,我们来系统的梳理关于 TypeScript 集成:Props 与 State 类型定义 的基本知识点:一、TypeScript 在 React 中的核心价值 TypeScript 为 React 开发提供了强大的类型安全保证,特别是在定义组件 Props 和 State 时: …

[1Prompt1Story] 注意力机制增强 IPCA | 去噪神经网络 UNet | U型架构分步去噪

第五章:注意力机制增强(IPCA) 欢迎回到1Prompt1Story🐻‍❄️ 在第四章中,我们掌握了**语义向量重加权(SVR)**技术,通过语义向量调节实现核心要素强化。 但当场景从"雪地嬉戏…

【P7071 [CSP-J2020] 优秀的拆分 - 洛谷 https://www.luogu.com.cn/problem/P7071】

题目 P7071 [CSP-J2020] 优秀的拆分 - 洛谷 https://www.luogu.com.cn/problem/P7071 代码 #include <bits/stdc.h> using namespace std; const int N1e71; int d; vector<int> v; bool k[N]; bool fen(int x){if(x0)return 1;//能拆分完 for(int ix;i>x/…

从ioutil到os:Golang在线客服聊天系统文件读取的迁移实践

了解更多&#xff0c;搜索"程序员老狼"作为一名Golang开发者&#xff0c;我最近在维护一个客服系统时遇到了一个看似简单却值得深思的问题&#xff1a;如何将项目中遗留的ioutil.ReadFile调用迁移到现代的os.ReadFile。这看似只是一个简单的函数替换&#xff0c;但背…

Python UI自动化测试Web frame及多窗口切换

这篇文章主要为大家介绍了Python UI自动化测试Web frame及多窗口切换&#xff0c;有需要的朋友可以借鉴参考下&#xff0c;希望能够有所帮助&#xff0c;祝大家多多进步&#xff0c;早日升职加薪 一、什么是frame&frame切换&#xff1f; frame&#xff1a;HTML页面中的一…

工业相机基本知识解读:像元、帧率、数据接口等

工业相机&#xff08;Industrial Camera&#xff09;是一种专门为工业自动化和机器视觉应用而设计的成像设备&#xff0c;它不同于消费类相机&#xff08;如手机、单反&#xff09;&#xff0c;主要追求的是成像稳定性、长时间可靠性、实时性和精确性。它通常与镜头、光源、图像…

RTC之神奇小闹钟

&#x1f3aa; RTC 是什么&#xff1f;—— 电子设备的“迷你生物钟”想象一下&#xff1a;你晚上睡觉时&#xff0c;手机关机了。但当你第二天开机&#xff0c;它居然知道现在几点&#xff01;这就是 RTC&#xff08;Real-Time Clock&#xff0c;实时时钟&#xff09; 的功劳&…

判断IP是否属于某个网段

判断IP是否属于某个网段判断一个IP是否是否属于某个CIDR网段&#xff0c;核心是比较IP与网段的网络位是否一致&#xff0c;步骤如下&#xff1a; 一、明确CIDR网段的两个关键信息 假设要判断的IP是 IPx&#xff0c;目标网段是 CIDR 网段地址/n&#xff08;例如 192.168.1.0/24…

Python day50

浙大疏锦行 python day50. 在预训练模型&#xff08;resnet18&#xff09;中添加cbam注意力机制&#xff0c;需要修改模型的架构&#xff0c;同时应该考虑插入的cbam注意力机制模块的位置&#xff1b; import torch import torch.nn as nn from torchvision import models# 自…

VPS海外节点性能监控全攻略:从基础配置到高级优化

在全球化业务部署中&#xff0c;VPS海外节点的稳定运行直接影响用户体验。本文将深入解析如何构建高效的性能监控体系&#xff0c;涵盖网络延迟检测、资源阈值设置、告警机制优化等核心环节&#xff0c;帮助运维人员实现跨国服务器的可视化管控。 VPS海外节点性能监控全攻略&am…

C语言初学者笔记【结构体】

文章目录一、结构体的使用1. 结构体声明2. 变量创建与初始化3. 特殊声明与陷阱二、内存对齐1. 规则&#xff1a;2. 示例分析&#xff1a;3. 修改默认对齐数&#xff1a;三、结构体传参四、结构体实现位段1. 定义2. 内存分配3. 应用场景4. 跨平台问题&#xff1a;5. 注意事项&am…

基于XGBoost算法的数据回归预测 极限梯度提升算法 XGBoost

一、作品详细简介 1.1附件文件夹程序代码截图 全部完整源代码&#xff0c;请在个人首页置顶文章查看&#xff1a; 学行库小秘_CSDN博客​编辑https://blog.csdn.net/weixin_47760707?spm1000.2115.3001.5343 1.2各文件夹说明 1.2.1 main.m主函数文件 该MATLAB 代码实现了…

数据安全系列4:常用的对称算法浅析

常用的算法介绍 常用的算法JAVA实现 jce及其它开源包介绍、对比 传送门 数据安全系列1&#xff1a;开篇 数据安全系列2&#xff1a;单向散列函数概念 数据安全系列3&#xff1a;密码技术概述 时代有浪潮&#xff0c;就有退去的时候 在我的博客文章里面&#xff0c;其中…

云计算学习100天-第26天

地址重写地址重写语法——关于Nginx服务器的地址重写&#xff0c;主要用到的配置参数是rewrite 语法格式&#xff1a; rewrite regex replacement flag rewrite 旧地址 新地址 [选项]地址重写步骤&#xff1a;#修改配置文件(访问a.html重定向到b.html) cd /usr/local/ngin…

【Python办公】字符分割拼接工具(GUI工具)

目录 专栏导读 项目简介 功能特性 🔧 核心功能 1. 字符分割功能 2. 字符拼接功能 🎨 界面特性 现代化设计 用户体验优化 技术实现 开发环境 核心代码结构 关键技术点 使用指南 安装步骤 完整代码 字符分割操作 字符拼接操作 应用场景 数据处理 文本编辑 开发辅助 项目优势 …

Windows 命令行:dir 命令

专栏导航 上一篇&#xff1a;Windows 命令行&#xff1a;Exit 命令 回到目录 下一篇&#xff1a;MFC 第一章概述 本节前言 学习本节知识&#xff0c;需要你首先懂得如何打开一个命令行界面&#xff0c;也就是命令提示符界面。链接如下。 参考课节&#xff1a;Windows 命令…

软考高级--系统架构设计师--案例分析真题解析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言试题一 软件架构设计一、2019年 案例分析二、2020年 案例分析三、2021年 案例分析四、2022年 案例分析试题二 软件系统设计一、2019年 案例分析二、2020年 案例分…

css中的性能优化之content-visibility: auto

content-visibility: auto的核心机制是让浏览器智能跳过屏幕外元素的渲染工作&#xff0c;包括布局和绘制&#xff0c;直到它们接近视口时才渲染。这与虚拟滚动等传统方案相比优势明显&#xff0c;只需要一行CSS就能实现近似效果。值得注意的是必须配合contain-intrinsic-size属…