乘风的人 - Agent-项目
type: channel
link: https://blog.zhangbiechen.cn/index.php/tag/Agent-项目/
items: 冻冻智能数据分析助手
items: 冻冻网络智能客服系统
items: llamaindex rag示例项目
items: wechat_agent_ai - main.py
items: 微信公众号 RAG Agent 最终版 GitHub 文档

冻冻智能数据分析助手
type: item
date: 2026-06-05T17:28:00+08:00
description: 🧊 冻冻智能数据分析助手基于 LangChain + LM Studio 的 语义层 NL2SQL 数据分析系统，支持用自然语言查询业务数据，自动生成 SQL、可视化图表和分析结论。git地址https://github.com/zxliucn/Datas_Agent目录项目概述技术架构项目结构核心模块4.1 主入口 (app.py)4.2 意图解析 (core/intent_parser.py)4.3 SQL 构建 (core/sql_builder.py)4.4 SQL 执行 (core/sql_executor.py)4.5 图表生成 (core/chart_generator.py)4.6 洞察生成 (core/insight_generator.py)查询模板系统 (templates)Web 界面 (web)工具模块 (utils)配置说明数据库表结构快速开始API 接口项目预览1. 项目概述冻冻智能数据分析助手是一个基于语义层 NL2SQL 架构的数据分析系统，采用 预定义模板 + LLM 意图解析 的安全方案，避免 LLM 直接生成 SQL 带来的安全风险。核心特性功能说明🔍 自然语言查询输入自然语言问题，自动解析意图并生成 SQL📊 可视化图表根据查询类型自动选择折线图、柱状图、饼图等💡 智能洞察从查询结果中提取关键结论和业务建议🔒 安全可控预定义 SQL 模板，LLM 仅负责意图解析，不直接生成 SQL🌐 Web 界面基于 Gradio 的可视化交互界面支持的查询类型查询类型示例问题商品销量虾滑卖了多少？上个月牛筋的销售额商品排行这个月哪个商品卖得最好？销量前10订单趋势最近7天的订单趋势订单列表待发货的订单有哪些？客户排行哪个客户花钱最多？库存预警库存不足的商品售后排行退款最多的商品经营概况本月经营情况2. 技术架构┌─────────────────────────────────────────────────────────┐ │ Gradio Web UI │ │ 输入自然语言问题 → 展示图表和洞察结论 │ └──────────────────────┬──────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ NL2SQL 主控制器 │ │ 意图解析 → SQL 构建 → 执行 → 可视化 │ └──────────────────────┬──────────────────────────────────┘ │ ┌──────────────┼──────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌────────────┐ ┌──────────────┐ │ IntentParser │ │ SQLBuilder │ │ SQLExecutor │ │ LLM 意图解析 │ │ 模板拼装 │ │ MySQL 查询 │ └──────────────┘ └────────────┘ └──────────────┘ │ ┌──────────────┼──────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌────────────┐ ┌──────────────┐ │ChartGenerator│ │ InsightGen │ │ QueryTemplates│ │ 图表可视化 │ │ 洞察分析 │ │ SQL 模板库 │ └──────────────┘ └────────────┘ └──────────────┘设计思路采用 语义层 NL2SQL 方案，而非让 LLM 直接生成 SQL：LLM 只做意图解析：理解用户自然语言，输出结构化的 {intent, params} JSONSQL 由模板拼装：每种查询类型对应预定义的 SQL 模板，安全可控参数映射处理：通过 param_mapping 将自然语言参数（如"上个月"）转换为 SQL 条件优势：✅ 安全：杜绝 SQL 注入风险✅ 可控：SQL 逻辑可审查、可维护✅ 稳定：不依赖 LLM 生成正确 SQL 的能力✅ 可扩展：新增查询类型只需添加模板3. 项目结构Datas_agent/ ├── app.py # 主入口，启动服务 ├── config.py # 配置文件（数据库、LLM） ├── .env # 环境变量 ├── requirements.txt # 依赖清单 │ ├── core/ # 核心业务模块 │ ├── __init__.py │ ├── intent_parser.py # LLM 意图解析 │ ├── sql…

冻冻网络智能客服系统
type: item
date: 2026-06-01T10:40:00+08:00
description: 冻冻网络智能客服系统基于 LangGraph + Ollama 的企业级智能客服系统，支持商品查询、订单查询、售后进度查询、烹饪指南等功能。git地址https://github.com/zxliucn/Customer_Services目录项目概述技术架构项目结构核心模块4.1 入口文件4.2 Agent 图结构4.3 状态管理4.4 LLM 配置工具模块 (tools)5.1 商品工具5.2 订单工具5.3 售后工具5.4 信息提取器5.5 用户与会话Agent 节点 (agent/node)6.1 意图识别6.2 路由6.3 工具调用6.4 RAG 检索6.5 回答生成6.6 直接回答6.7 帮助信息6.8 转人工RAG 系统配置说明数据库表结构快速开始项目预览API 接口1. 项目概述冻冻网络智能客服是一个基于 LangGraph 构建的企业级对话系统，采用多节点协作架构，支持：功能说明📦 商品查询价格、规格、库存🚚 订单查询订单状态、物流进度💰 售后进度退款/退货/换货进度🍳 烹饪指南食材做法食谱👨‍💼 转人工投诉等复杂问题转人工核心特性：🎯 意图识别 + 规则匹配混合决策🔧 工具调用：订单/商品/售后数据库查询📚 RAG 检索：用户手册 + 烹饪指南💾 多轮对话记忆 (MemorySaver)🏷️ 游客/登录用户区分2. 技术架构┌─────────────────────────────────────────────────────────────┐ │ FastAPI 入口 │ │ /chat, /health │ └─────────────────────────┬───────────────────────────────────┘ │ ┌─────────────────────────▼───────────────────────────────────┐ │ LangGraph Agent │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Intent │───▶│ Router │───▶│ Nodes │ │ │ │ 意图识别 │ │ 路由 │ │ 执行 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ │ ┌─────────┬─────────┬─────────┬──┘ │ │ ▼ ▼ ▼ ▼ │ │ ┌────────┐┌────────┐┌────────┐┌────────┐ │ │ │ Tool ││ RAG ││ Direct ││ Help │ │ │ │工具调用 ││知识检索 ││直接回答 ││帮助信息 │ │ │ └────────┘└────────┘└────────┘└────────┘ │ │ │ │ │ │ └────┬────┘ │ │ ▼ │ │ ┌────────────┐ │ │ │ Generate │ │ │ │ 回答生成 │ │ │ └────────────┘ │ └─────────────────────────┬───────────────────────────────────┘ │ ┌─────────────────────┼─────────────────────┐ ▼ ▼ ▼ ┌────────┐ ┌────────────┐ ┌──────────┐ │ MySQL │ │ Chroma │ │ Ollama │ │ 数据库 │ │ 向量数据库 │ │ LLM │ └────────┘ └────────────┘ └──────────┘技术栈：层级技术选型对话框架LangGraphLLMOllama (dd_model)EmbeddingQwen3-Embedding-0.6B向量库Chroma数据库MySQLWeb 框架FastAPI3. 项目结构Customer_Services/ ├── main.py # FastAPI 入口 ├── requirements.txt # 依赖 ├── .env # 环境变量 │ ├── config/ # 配置模块 │ ├── settings.py # 全局配置 │ ├── database.py # 数据库连接 │ └── logging_config.py # 日志配置 │ ├── agent/ # Agent 核心 │ ├── graph.py # LangGraph 图定义 │ ├── state.py # 状态定义 │ ├── llm.py # LLM 配置 │ └── node/ # 节点实现 │ ├── intent.py # 意图识别 │ ├── rou…

llamaindex rag示例项目
type: item
date: 2026-05-25T15:15:00+08:00
description: 项目结构llamaindex-rag-example/├── data/ # 存放待处理的原始文档（如PDF/TXT/Markdown等）├── storage_exp/ # 持久化存储向量索引的目录（自动生成）├── 01_build.py # 构建并持久化向量索引的脚本└── 02_query.py # 加载索引并进行问答查询的脚本PDF文件转Markdown#如果直接用 pdf版解析会很差，可以用mineru转化为md文件，但是测试 api 速度也不快， 可以直接在官网将文档转化下载，时间最快，还可以进行调整 官网：https://mineru.net/ 01_build.py 构建索引import os import time import torch from pathlib import Path from llama_index.core import VectorStoreIndex, Settings, Document from llama_index.embeddings.huggingface import HuggingFaceEmbedding from llama_index.core.node_parser import SimpleNodeParser # 配置 device = "cpu" #如果直接用 pdf版解析会很差，可以用mineru转化为md文件，但是测试 api 速度也不快， 可以直接在官网将文档转化下载，时间最快，还可以进行调整https://mineru.net/ markdown_path = "./data/test_manual.md" persist_dir = "./storage_exp" # 创建目录 os.makedirs(persist_dir, exist_ok=True) os.makedirs("./models", exist_ok=True) # 2. 配置全局 Embedding（本地 Qwen3 模型） EMBEDDING_PATH = "/Users/t-mac/.cache/huggingface/hub/models--Qwen--Qwen3-Embedding-0.6B/snapshots/c54f2e6e80b2d7b7de06f51cec4959f6b3e03418" Settings.embed_model = HuggingFaceEmbedding( model_name=EMBEDDING_PATH, trust_remote_code=True ) # 读取 Markdown 文件 print(f"读取 Markdown: {markdown_path}") with open(markdown_path, "r", encoding="utf-8") as f: markdown_content = f.read() print(f"文档长度: {len(markdown_content)} 字符") # 创建 Document doc = Document( text=markdown_content, metadata={ "source": Path(markdown_path).name, "file_path": str(Path(markdown_path).absolute()), } ) # 切分文档 print("切分文档...") parser = SimpleNodeParser(chunk_size=512, chunk_overlap=50) nodes = parser.get_nodes_from_documents([doc]) print(f"生成 {len(nodes)} 个节点") # 构建索引 print("构建索引...") start_time = time.time() index = VectorStoreIndex(nodes) build_time = time.time() - start_time print(f"索引构建完成，耗时 {build_time:.2f} 秒") # 保存索引 print(f"保存索引到 {persist_dir}...") index.storage_context.persist(persist_dir=persist_dir) # 统计 index_size = 0 for root, dirs, files in os.walk(persist_dir): for file in files: index_size += os.path.getsize(os.path.join(root, file)) print("\n" + …

wechat_agent_ai - main.py
type: item
date: 2026-04-09T16:51:00+08:00
description: import re import hashlib import xml.etree.ElementTree as ET from datetime import datetime from fastapi import FastAPI, Request, Response # RAG from langchain_huggingface import HuggingFaceEmbeddings from langchain_community.vectorstores import FAISS # LLM from langchain_ollama import OllamaLLM # LangGraph from langgraph.checkpoint.memory import InMemorySaver from langgraph.graph import StateGraph, END from typing import TypedDict from langchain_core.messages import HumanMessage, AIMessage import requests import time app = FastAPI(title="微信公众号 RAG Agent") # ===================== 配置 ===================== WECHAT_TOKEN = "wechat_rag_agent_2026" WECHAT_ORIGIN_ID = "gh_cfbff1593cc5" EMBEDDING_PATH = "./rag/models--Qwen--Qwen3-Embedding-0.6B/snapshots/c54f2e6e80b2d7b7de06f51cec4959f6b3e03418" FAISS_INDEX_DIR = "./rag/faiss_index" LLM_MODEL = "my-qwen" OLLAMA_HOST = "http://localhost:11434" CACHE_EXPIRE_SECONDS = 30 SESSION_TIMEOUT = 60 # ================================================== # ===================== 优化版欢迎语 ===================== WELCOME_TEXT = """✨ 你好，欢迎使用智能励志助手 在这里，你可以随时获取正能量与成长感悟～ 📌 使用指南 1️⃣ 回复【今天】或【每日一句】 获取每日一句精美图文，中英双语励志短句 2️⃣ 发送关键词触发知识库 支持：励志、奋斗、努力、学习、知识、坚持 成长、名言、失败、成功、气馁、失望、沮丧、希望 3️⃣ 直接发送文字聊天 AI 会为你简洁回复，陪你聊天解惑 愿你步履不停，始终向阳 🌱 """ # 会话记录 USER_SESSION = {} MESSAGE_CACHE = {} LAST_MSG_ID = None def clean_expired_cache(): now = time.time() expired = [k for k, v in MESSAGE_CACHE.items() if v["expire_at"] < now] for key in expired: del MESSAGE_CACHE[key] # ---------------------- RAG ---------------------- device = "cpu" embeddings = HuggingFaceEmbeddings( model_name=EMBEDDING_PATH, model_kwargs={"device": device} ) rag_db = FAISS.load_local( FAISS_INDEX_DIR, embeddings, allow_dangerous_deserialization=True ) retriever = rag_db.as_retriever(k=2) # ---------------------- LLM ---------------------- llm = OllamaLLM(model=LLM_MODEL, base_url=OLLAMA_HOST) # ---------------------- 工具函数 ---------------------- def is_today_sentence(text): t = text.strip().lower() return t …

微信公众号 RAG Agent 最终版 GitHub 文档
type: item
date: 2026-04-09T16:50:00+08:00
description: 微信公众号 RAG Agent 最终版 GitHub 文档（已补全：项目目录、requirements.txt、Modelfile、Nginx反向代理、微信配置全流程、完整启动命令）🚀 项目介绍本项目是一个专为微信公众号设计的轻量智能对话Agent，基于 FastAPI + LangGraph + Ollama + FAISS 构建，支持：大模型闲聊（一句话短回答，适配微信场景）RAG 知识库检索日期类接口调用（每日一句）微信重试缓存机制：彻底解决公众号5秒超时问题，无需客服消息，100%保证消息送达Nginx 反向代理，适配公网部署核心优势：2核4G服务器即可稳定运行，纯CPU推理，无GPU依赖，零客服消息次数占用。📁 项目目录结构wechat_agent_ai/ ├── rag/ # RAG 知识库模块 │ ├── faiss_index/ # FAISS 向量索引文件（向量化后生成） │ ├── models--Qwen--Qwen3-Embedding-0.6B/ # 通义千问嵌入模型 │ ├── data_vectorization.py # 知识库向量化脚本（生成FAISS索引） │ ├── iciba_data_multi.json # 每日一句备用数据 │ └── rag_data_retrieval.py # RAG 检索测试脚本 ├── main.py # 主程序（微信接口+Agent+重试缓存核心逻辑） ├── main_1.py # 历史版本/备用代码 ├── test_local.py # 本地测试脚本（无需微信，直接测试Agent功能） ├── requirements.txt # 项目依赖清单（一键安装） ├── Modelfile # Ollama 自定义模型配置文件 ├── dockerfile # Docker 构建文件（可选） ├── start.sh # 启动脚本 ├── .dockerignore # Docker 忽略文件 └── README.md # 本说明文档目录说明文件/目录作用rag/RAG 知识库相关代码、模型、向量索引，用于知识库问答main.py项目核心主程序，包含微信公众号接口、LangGraph 工作流、重试缓存逻辑test_local.py本地测试脚本，可直接运行验证Agent功能，无需配置微信公众号requirements.txt项目所有Python依赖包，一键安装环境ModelfileOllama 自定义模型配置，用于构建适配微信的短回答模型 my-qwen📦 环境安装（通过 requirements.txt 一键部署）1. 前置依赖系统：Ubuntu 20.04+（推荐）Python：3.8+服务器：2核4G及以上，开放80端口（Nginx反向代理用）2. 安装 Ollama（大模型运行环境）# 一键安装 Ollama curl https://ollama.com/install.sh | sh # 拉取基础模型（qwen2:0.5b 超轻量，适配2核4G） ollama pull qwen2:0.5b-instruct-q2_K3. 构建自定义 Ollama 模型（Modelfile）# 创建 Modelfile（适配微信的短回答模型） tee Modelfile <<EOF FROM qwen2:0.5b-instruct-q2_K PARAMETER num_ctx 512 PARAMETER num_predict 64 PARAMETER temperature 0.1 PARAMETER top_p 0.7 PARAMETER num_thread 2 SYSTEM "直接回答，一句话。" EOF # 构建自定义模型 my-qwen ollama create my-qwen -f Modelfile # 测试模型（验证是否正常） ollama run my-qwen "你好"4. 一键安装 Python 依赖（requirements.txt）# 1. 创建并激活虚拟环境（推荐） python3 -m venv venv source venv/bin/activate # 2. 一键安装所有依赖 pip install -r requirements.txtrequirements.txt 完整内容fastapi==0.110.0 uvicorn==0.28.0 langchain==0.2.0 langgraph==0.0.56 langchain-ollama==0.1.0 langchain-huggingface==0.1.0 langchain-community==0.2.0 faiss-cpu==1.8.0 requests…