从ai产品推荐到利用cursor快速掌握一个开源项目再到langchain手搓一个Text2Sql agent
目录
0. 经验分享:产品推荐
1. 经验分享:提示词优化
2. 经验分享:使用cursor 阅读一篇文章
3. 经验分享:使用cursor 阅读一个完全陌生的开源项目
4. 经验分享:手搓一个text2sql agent (使用langchain langgraph)
0. 经验分享:产品推荐
ai 产品
360ai 浏览器
https://www.perplexity.ai/onboarding?redirect=https%3A%2F%2Fwww.perplexity.ai%2F%3Flogin-source%3DoneTapHome
秘塔AI搜索
ima.copilot-腾讯智能工作台
https://deepseek.com -→ 揭秘DeepSeek:一个更极致的中国技术理想主义故事
ai 导航站
极客时间 AI 指南
ai 学习材料
https://github.com/anthropics
大语言模型(LLM)学习路径和资料汇总 · Issue #97 · ninehills/blog · GitHub
Docs
动手实战人工智能 AI By Doing — 动手实战人工智能 AI By Doing
agent平台
code
dify
fastgpt
发展趋势:
pc-agent
GLM-PC
mobile-agent
Mobile-Agent-E: Self-Evolving Mobile Assistant for Complex Tasks
检测论文是否由ai 生成: GitHub - Jiaqi-Chen-00/ImBD: [AAAI 2025] Official repository of Imitate Before Detect: Aligning Machine Stylistic Preference for Machine-Revised Text Detection
写小说 GitHub - nicekate/Al-StoryLab: AI-StoryLab 是一款基于 Next.js 的智能故事创作平台,集成音频制作与 AI 绘图提示词生成功能。
GitHub - Aria-Zhangjl/StoryWeaver: [AAAI 2025] StoryWeaver: A Unified World Model for Knowledge-Enhanced Story Character Customization
漫画生成: GitHub - jianzongwu/DiffSensei: Implementation of "DiffSensei: Bridging Multi-Modal LLMs and Diffusion Models for Customized Manga Generation"
社交: GitHub - langchain-ai/social-media-agent: 📲 An agent for sourcing, curating, and scheduling social media posts with human-in-the-loop.
https://github.com/whotto/Video_note_generator
电影视频: https://github.com/linyqh/NarratoAI
https://github.com/Huanshere/VideoLingo/blob/main/i18n/README.zh.md
数字人: https://github.com/modstart-lib/aigcpanel
教育方向: GitHub - taoofagi/easegen-front: Easegen is an open-source digital human course creation platform offering comprehensive solutions from course production and video management to intelligent quiz generation.Easegen 是一个开源的数字人课程制作平台,提供从课程制作、视频管理到智能出题的全方位解决方案。
1. 经验分享:提示词优化
a.search in english, reponse use chinese ;
b.思维链 )
李继刚:Prompt的道与术
总结:没什么用
2. 经验分享:使用cursor 阅读一篇文章
1.安装markmap插件
2.提示词: @http://xxx 阅读文章帮我,使用md 格式生产思维导图
效果如下:

3. 经验分享:使用cursor 阅读一个完全陌生的开源项目
1.安装plantUml 插件
2. 提示词:
@codebase 使用plantUml格式,帮我生成这个项目的架构图
@codebase 帮我生成xxx 的流程图
@codebase 帮我写一篇关于roo Cline 系统提示词分析
以roo-code插件项目为例 为例: GitHub - RooVetGit/Roo-Code: Roo Code (prev. Roo Cline) is a VS Code plugin that enhances coding with AI-powered automation, multi-model support, and experimental features


4. 经验分享:手搓一个text2sql agent (使用langchain langgraph)
import os
from typing import Dict, Any, List
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from langchain_community.utilities import SQLDatabase
from dotenv import load_dotenv
import pymysql
from sqlalchemy import create_engine, text# 加载环境变量
load_dotenv()class MySQLChainDemo:"""MySQL Chain 演示类"""def __init__(self, database: str = None):"""初始化 MySQL Chain 演示实例Args:database: 数据库名称,如果不指定则使用环境变量中的配置"""self.llm = ChatOpenAI(model="deepseek-chat",openai_api_key=os.getenv("LLM_API_KEY"),base_url=os.getenv("LLM_BASE_URL"))# 使用传入的数据库名或环境变量中的配置self.database = database or os.getenv("MYSQL_DATABASE", "stock")# 创建数据库连接db_url = (f"mysql+pymysql://{os.getenv('MYSQL_USER')}:{os.getenv('MYSQL_PASSWORD')}"f"@{os.getenv('MYSQL_HOST')}:{os.getenv('MYSQL_PORT')}/{self.database}")self.engine = create_engine(db_url)self.db = SQLDatabase(engine=self.engine)def get_tables_info(self) -> str:"""获取所有表的信息"""try:with self.engine.connect() as conn:# 获取所有表名tables = conn.execute(text("SHOW TABLES")).fetchall()tables = [table[0] for table in tables]tables_info = [f"当前数据库: {self.database}"]for table in tables:# 获取表结构columns = conn.execute(text(f"DESCRIBE `{table}`")).fetchall()columns_info = [f"{col[0]} ({col[1]})" for col in columns]tables_info.append(f"\n表名: {table}")tables_info.append("列: " + ", ".join(columns_info))return "\n".join(tables_info)except Exception as e:return f"获取表信息失败: {str(e)}"def execute_query(self, question: str) -> str:"""执行自然语言查询"""try:# 创建提示模板prompt = ChatPromptTemplate.from_messages([("system", """你是一个MySQL专家,请将用户的自然语言问题转换为可执行的MySQL查询语句。当前数据库环境:
数据库名称: {database}数据库表结构如下:
{tables_info}规则:
1. 只返回一个MySQL查询语句
2. 不要包含任何注释或额外说明
3. 不要使用markdown格式
4. 使用反引号(`)包裹表名和列名
5. 确保SQL语法正确
6. 查询information_schema时使用当前数据库名称示例:
问题:数据库中有哪些表?
返回:SELECT TABLE_NAME as table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{database}';问题:查询用户表有多少条记录?
返回:SELECT COUNT(*) as total FROM `users`;
"""),("human", "{question}")])# 获取表信息tables_info = self.get_tables_info()# 生成SQLchain = prompt | self.llm | StrOutputParser()sql = chain.invoke({"question": question,"tables_info": tables_info,"database": self.database}).strip()# 执行SQLwith self.engine.connect() as conn:result = conn.execute(text(sql))rows = result.fetchall()if not rows:return f"SQL查询: {sql}\n\n查询结果: 无数据"# 格式化结果columns = result.keys()results = []for row in rows:result_dict = dict(zip(columns, row))results.append(str(result_dict))return f"SQL查询: {sql}\n\n查询结果:\n" + "\n".join(results)except Exception as e:return f"查询执行失败: {str(e)}\nSQL: {sql if 'sql' in locals() else '未生成'}"def main():"""主函数"""# 可以指定数据库名称,或使用默认值demo = MySQLChainDemo() # 使用默认的 stock 数据库# demo = MySQLChainDemo(database="other_db") # 使用指定的数据库# 测试查询test_queries = ["数据库中有哪些表?","查询t_stock_min_trade表中最新的交易时间","查询t_stock_min_trade表中股票代码为000001的最近3条记录","统计t_stock_min_trade表中有多少个不同的股票代码"]for query in test_queries:print(f"\n问题: {query}")result = demo.execute_query(query)print(result)print("-" * 50)if __name__ == "__main__":main()
涉及到到细节的代码和roo code 源码分析见github:
https://github.com/caicongyang/ai-agent-demo.git
https://github.com/caicongyang/mini-cline.git
相关文章:
从ai产品推荐到利用cursor快速掌握一个开源项目再到langchain手搓一个Text2Sql agent
目录 0. 经验分享:产品推荐 1. 经验分享:提示词优化 2. 经验分享:使用cursor 阅读一篇文章 3. 经验分享:使用cursor 阅读一个完全陌生的开源项目 4. 经验分享:手搓一个text2sql agent (使用langchain l…...
freeswitch在centos上编译过程
操作系统:centos9-last usr/local/freeswitch/bin/freeswitch -version FreeSWITCH version: 1.10.13-devgit~20250125T131725Z~3f1e4bf90a~64bit (git 3f1e4bf 2025-01-25 13:17:25Z 64bit)vi /etc/ssh/sshd_config ip a nmtui reboot ip a curl -o /etc/pki/rpm-…...
项目测试之MockMvc
文章目录 基础基础概念Mockxxx一般实现文件位置 实战MockMvc与Test注解不兼容RequestParams参数RequestBody参数 基础 基础概念 定义:是Spring框架提供的一种用于测试Spring MVC控制器的工具,它允许开发者在不启动完整的web服务器的情况下,…...
Blazor-选择循环语句
今天我们来说说Blazor选择语句和循环语句。 下面我们以一个简单的例子来讲解相关的语法,我已经创建好了一个Student类,以此类来进行语法的运用 因为我们需要交互性所以我们将类创建在*.client目录下 if 我们做一个学生信息的显示,Gender为…...
【第一天】零基础入门刷题Python-算法篇-数据结构与算法的介绍(持续更新)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.基本概念2.Python中的数据结构1. 列表(List)2. 元组(Tuple)3. 字典&#…...
appium自动化环境搭建
一、appium介绍 appium介绍 appium是一个开源工具、支持跨平台、用于自动化ios、安卓手机和windows桌面平台上面的原生、移动web和混合应用,支持多种编程语言(python,java,Ruby,Javascript、PHP等) 原生应用和混合应用…...
大数据Hadoop入门2
目录 第三部分(Hadoop MapReduce和Hadoop YARN) 1.课程内容-大纲-学习目标 2.理解先分再合、分而治之的思想 3.hadoop团队针对MapReduce的设计构思 4.Hadoop MapReduce介绍、阶级划分和进程组成 5.Hadoop MapReduce官方示例-圆周率PI评估 6.Hadoo…...
21.Word:小赵-毕业论文排版❗【39】
目录 题目 NO1.2 NO3.4 NO5.6 NO7.8.9 NO10.11.12 题目 NO1.2 自己的论文当中接收老师的修改:审阅→比较→源文档:考生文件夹:Word.docx→修订的文档:考生文件夹:教师修改→确定→接收→接收所有修订将合并之…...
【go语言】并发编程
一、协程、线程、进程 在计算机编程中,进程、线程和协程都是用于并发执行任务的不同概念。他们的区别主要体现在创建、管理和调度的复杂度上,特别是在不同的编程语言中有不同的实现方式。下面是他们的详细区别和在 go 语言中的实现方式。 1.1 进程 定义…...
算法1-1 模拟与高精度
目录 一 阶乘数码 二 麦森数 三 模拟题 一 阶乘数码 本题中n<1000,1000的阶乘为以下这么大,远超long的范围 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901…...
JS中对数组的操作哪些会改变原数组哪些不会?今天你一定要记下!
JavaScript 数组方法:变更原数组与不变更原数组的区别 在 JavaScript 中,数组是非常常见且重要的数据结构。作为开发者,我们常常需要使用数组方法来处理数组数据。但是,数组的不同方法会以不同的方式影响原数组,它们可…...
公式与函数的应用
一 相邻表格相乘 1 也可以复制 打印标题...
ShenNiusModularity项目源码学习(7:数据库结构)
ShenNiusModularity项目默认使用mysql数据库,数据库连接字符串放到了ShenNius.Admin. Mvc、ShenNius.Admin.Hosting的appsettings.json文件内。 ShenNiusModularity项目为自媒体内容管理系统,支持常规管理、CMS管理、商城管理等功能,其数…...
【STL笔记】字符串
字符串 下标从0开始,常规用法不再赘述,持续更新中… 1. substr(pos,len): 返回从位置 pos 开始,长度为 len 的子串。(len默认为npos) std::string str "Hello, World!"; std::string sub1 str.substr(7, 5); // 提…...
java知识点 | java中不同数据结构的长度计算
在Java中,size 和 length是两个不同的属性,分别用于不同的数据结构。以下是它们的详细区别和适用场景: 1.length 适用对象: 数组(Array):数组是一个固定长度的线性数据结构,其长度是…...
WordPress event-monster插件存在信息泄露漏洞(CVE-2024-11396)
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)
手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍) 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…...
AI软件栈:LLVM分析(一)
文章目录 AI 软件栈后端编译LLVM IRLLVM的相关子项目AI 软件栈后端编译 AI软件栈的后端工作通常与硬件架构直接相关,为了实现一个既能适配现代编程语言、硬件架构发展的目标,所以提出了LLVM具备多阶段优化能力提供基础后端描述,便于进行编译器开发兼容标准编译器的行为LLVM …...
编程语言中的常见Bug及解决方案
在编程过程中,不同语言有其独特的特性和挑战,这也导致了各种常见Bug的出现。本文将总结几种主流编程语言中的常见Bug,包括JavaScript、Python、C/C、Java和Go,并提供相应的解决方案和案例。 一、JavaScript中小数相加精度不准确的…...
论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(三)
Understanding Diffusion Models: A Unified Perspective(三) 文章概括 文章概括 引用: article{luo2022understanding,title{Understanding diffusion models: A unified perspective},author{Luo, Calvin},journal{arXiv preprint arXiv:…...
修改maven的编码格式为utf-8
1.maven默认编码为GBK 注:配好MAVEN_HOME的环境变量后,在运行cmd. 打开cmd 运行mvn -v命令即可. 2.修改UTF-8为默认编码. 设置环境变量 变量名 MAVEN_OPTS 变量值 -Xms256m -Xmx512m -Dfile.encodingUTF-8 3.保存,退出cmd.重新打开cmd 运行mvn -v命令即可. 源码获取&…...
从AD的原理图自动提取引脚网络的小工具
这里跟大家分享一个我自己写的小软件,实现从AD的原理图里自动找出网络名称和引脚的对应。存成文本方便后续做表格或是使用简单行列编辑生成引脚约束文件(如.XDC .UCF .TCL等)。 我们在FPGA设计中需要引脚锁定文件,就是指示TOP层…...
Coze,Dify,FastGPT,对比
在当今 AI 技术迅速发展的背景下,AI Agent 智能体成为了关键领域,Coze、Dify 和 FastGPT 作为其中的佼佼者,各有千秋。 平台介绍 - FastGPT:由环界云计算公司发起,是基于大语言模型(LLM)的开源…...
【数据结构】_链表经典算法OJ(力扣版)
目录 1. 移除链表元素 1.1 题目描述及链接 1.2 解题思路 1.3 程序 2. 反转链表 2.1 题目描述及链接 2.2 解题思路 2.3 程序 3. 链表的中间结点 3.1 题目描述及链接 3.2 解题思路 3.3 程序 1. 移除链表元素 1.1 题目描述及链接 原题链接:203. 移除链表…...
【数据结构】(1)集合类的认识
一、什么是数据结构 1、数据结构的定义 数据结构就是存储、组织数据的方式,即相互之间存在一种或多种关系的数据元素的集合。 2、学习数据结构的目的 在实际开发中,我们需要使用大量的数据。为了高效地管理这些数据,实现增删改查等操作&…...
Vue 3 中的 TypeScript:接口、自定义类型与泛型
在 Vue 3 中,TypeScript 提供了强大的类型系统,帮助我们更好地管理代码的类型安全。通过使用 接口(Interface)、自定义类型(Type Aliases) 和 泛型(Generics),我们可以编…...
计算机组成原理(计算机系统3)--实验七:新增指令实验
一、实验目标 了解RISC-V mini处理器架构,在其基础之上新增一个指令,完成设计并观察指令执⾏。 二、实验内容 1) 修改数据通路,新增指令comb rs1,rs2,rd采用R型指令格式,实现将rs1高16位和rs2低16位拼接成32位整数,…...
LeetCode 0040.组合总和 II:回溯 + 剪枝
【LetMeFly】40.组合总和 II:回溯 剪枝 力扣题目链接:https://leetcode.cn/problems/combination-sum-ii/ 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates…...
解决使用Selenium时ChromeDriver版本不匹配问题
在学习Python爬虫过程中如果使用Selenium的时候遇到报错如下session not created: This version of ChromeDriver only supports Chrome version 99… 这说明当前你的chrome驱动版本和浏览器版本不匹配。 例如 SessionNotCreatedException: Message: session not created: This…...
CAN波特率匹配
STM32 LinuxIMX6ull(Linux)基于can-utils测试...
