从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

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

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

相关文章

基于DeepSeek在藏语学习推广和藏语信息化方面可以做哪些工作?

基于DeepSeek对藏语的技术优势,您可在以下三大方向开展创新性工作,以下是20具体落地方案: 一、藏语智能教育工具开发 《三十颂》AI语法教练 开发虚拟助教自动解析藏文句子结构(标注格助词/时态变化)错误检测系统&…

【Java-数据结构】Java 链表面试题下 “最后一公里”:解决复杂链表问题的致胜法宝

我的个人主页 我的专栏:Java-数据结构,希望能帮助到大家!!!点赞❤ 收藏❤ 引言: Java链表,看似简单的链式结构,却蕴含着诸多有趣的特性与奥秘,等待我们去挖掘。它就像一…

深入探索 HTML5 拖拽效果 API:打造流畅交互体验

在现代的 Web 开发中,交互性和用户体验一直是开发者关注的重点。HTML5 的拖拽效果 API (Drag and Drop API) 提供了一种非常直观的方式来让网页元素或文件能够被拖动并放置到页面的指定位置,极大提升了用户的交互体验。本篇文章将深入探讨如何使用 HTML5…

智慧园区系统的类型及其在企业管理效率提升中的关键作用解析

内容概要 在智慧园区的建设中,各类系统的采用是提升管理效率的关键所在。快鲸智慧园区(楼宇)管理系统,通过其全面数字化的管理手段,已经成为了企业管理的新标杆。这一系统能够有效整合租赁管理、资产管理、招商管理和物业管理等功能&#xf…

微信小程序压缩图片

由于wx.compressImage(Object object) iOS 仅支持压缩 JPG 格式图片。所以我们需要做一下特殊的处理: 1.获取文件,判断文件是否大于设定的大小 2.如果大于则使用canvas进行绘制,并生成新的图片路径 3.上传图片 async chooseImage() {let …

国内flutter环境部署(记录篇)

设置系统环境变量 export PUB_HOSTED_URLhttps://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn使用以下命令下载flutter镜像 git clone -b stable https://mirror.ghproxy.com/https://github.com/<github仓库地址>#例如flutter仓…

【uniapp】uniapp使用java线程池

标题 由于js是性能孱弱的单线程语言&#xff0c;只要在渲染中执行了一些其他操作&#xff0c;会中断渲染&#xff0c;导致页面卡死&#xff0c;卡顿&#xff0c;吐司不消失等问题。在安卓端可以调用java线程池&#xff0c;把耗时操作写入线程池里面&#xff0c;优化性能。 实…

多级缓存(亿级并发解决方案)

多级缓存&#xff08;亿级流量&#xff08;并发&#xff09;的缓存方案&#xff09; 传统缓存的问题 传统缓存是请求到达tomcat后&#xff0c;先查询redis&#xff0c;如果未命中则查询数据库&#xff0c;问题如下&#xff1a; &#xff08;1&#xff09;请求要经过tomcat处…

第27篇 基于ARM A9处理器用C语言实现中断<三>

Q&#xff1a;基于ARM A9处理器怎样设计C语言工程&#xff0c;同时使用按键中断和定时器中断在红色LED上计数&#xff1f; A&#xff1a;基本原理&#xff1a;设置HPS Timer 0和按键中断源&#xff0c;主程序调用set_A9_IRQ_stack( )函数设置中断模式的ARM堆栈指针&#xff0c…

C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed

目录 四种操纵符简要介绍 setprecision基本用法 setfill的基本用法 fixed的基本用法 setw基本用法 以下是一些常见的用法和示例&#xff1a; 1. 设置字段宽度和填充字符 2. 设置字段宽度和对齐方式 3. 设置字段宽度和精度 4. 设置字段宽度和填充字符&#xff0c;结合…

JS宏进阶:闭包与代理

在JavaScript中&#xff0c;闭包和代理是两种重要的概念&#xff0c;它们各自具有独特的功能和用途。闭包&#xff0c;它指的是一个函数能够访问并操作其父函数作用域中的变量&#xff0c;即使父函数已经执行完毕。它允许内部函数访问外部函数的变量&#xff0c;从而提供了强大…

【1.安装ubuntu22.04】

目录 参考文章链接电脑参数安装过程准备查看/更改引导方式查看/更改磁盘的分区格式关闭BitLocker加密压缩分区关闭独显直连制作Ubuntu安装盘下载镜像制作启动盘 进入BIOS模式进行设置Secure Boot引导项顺序try or install ubuntu 进入安装分区启动引导器个人信息和重启 参考文章…

代码随想录算法【Day34】

Day34 62.不同路径 思路 第一种&#xff1a;深搜 -> 超时 第二种&#xff1a;动态规划 第三种&#xff1a;数论 动态规划代码如下&#xff1a; class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m, vector<int>(n,…

计算机毕业设计PySpark+hive招聘推荐系统 职位用户画像推荐系统 招聘数据分析 招聘爬虫 数据仓库 Django Vue.js Hadoop

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

强化学习数学原理(三)——迭代算法

一、值迭代过程 上面是贝尔曼最优公式&#xff0c;之前我们说过&#xff0c;f(v)v&#xff0c;贝尔曼公式是满足contraction mapping theorem的&#xff0c;能够求解除它最优的策略和最优的state value&#xff0c;我们需要通过一个最优v*&#xff0c;这个v*来计算状态pi*&…

【机器学习】自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

一、使用pytorch框架实现逻辑回归 1. 数据部分&#xff1a; 首先自定义了一个简单的数据集&#xff0c;特征 X 是 100 个随机样本&#xff0c;每个样本一个特征&#xff0c;目标值 y 基于线性关系并添加了噪声。将 numpy 数组转换为 PyTorch 张量&#xff0c;方便后续在模型中…

AI 浪潮席卷中国年,开启科技新春新纪元

在这博主提前祝大家蛇年快乐呀&#xff01;&#xff01;&#xff01; 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其影响力已经渗透到社会生活的方方面面。在中国传统节日 —— 春节期间&#xff0c;AI 技术也展现出了巨大的潜力&#xff0c;为中国年带…

vim的特殊模式-可视化模式

可视化模式&#xff1a;按 v进入可视化模式 选中 y复制 d剪切/删除 可视化块模式: ctrlv 选中 y复制 d剪切/删除 示例&#xff1a; &#xff08;vim可视化模式的进阶使用&#xff1a;vim可视化模式的进阶操作-CSDN博客&#xff09;

【微服务与分布式实践】探索 Eureka

服务注册中心 心跳检测机制&#xff1a;剔除失效服务自我保护机制 统计心跳失败的比例在15分钟之内是否低于85%&#xff0c;如果出现低于的情况&#xff0c;Eureka Server会将当前的实例注册信息保护起来&#xff0c;让这些实例不会过期。当节点在短时间内丢失过多的心跳时&am…

sunrays-framework配置重构

文章目录 1.common-log4j2-starter1.目录结构2.Log4j2Properties.java 新增两个属性3.Log4j2AutoConfiguration.java 条件注入LogAspect4.ApplicationEnvironmentPreparedListener.java 从Log4j2Properties.java中定义的配置读取信息 2.common-minio-starter1.MinioProperties.…