Cursor开发智能体demo初体验
在上一次使用Cursor开发springboot项目以后,尝到了甜头,随着智能体的不断给我带来的良好体验,对智能体进一步了解的兴趣也进一步增强。
所以这次用Cursor开发一个智能体Demo,主要借助千问与Cursor这两个工具,首先让千问生成一个示例,内容如下:
app.py
# app.py import gradio as gr from agent import ask_question gr.ChatInterface( fn=ask_question, title="资产中心智能助理", description="问我任何关于资产接口的问题!" ).launch(server_name="0.0.0.0", server_port=7860)
agent.py
# agent.py import os from langchain_community.document_loaders import TextLoader from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_community.vectorstores import Chroma from langchain_community.embeddings import HuggingFaceEmbeddings from langchain_core.prompts import ChatPromptTemplate from langchain_core.runnables import RunnablePassthrough from langchain_core.output_parsers import StrOutputParser from langchain_openai import ChatOpenAI # 通过 OpenAI 兼容接口调用通义千问 # 1. 加载并切分文档 loader = TextLoader("asset_api_docs.txt", encoding="utf-8") docs = loader.load() text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50) splits = text_splitter.split_documents(docs) # 2. 创建向量数据库(首次运行会自动 embedding) vectorstore = Chroma.from_documents( documents=splits, embedding=HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") ) retriever = vectorstore.as_retriever() # 3. 设置大模型(这里以通义千问 OpenAI 兼容接口为例) # 建议把 API Key 配到环境变量 QWEN_API_KEY 中 llm = ChatOpenAI( model="qwen-plus", # 或者你在阿里云控制台开通的具体模型名 base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", api_key=os.getenv("QWEN_API_KEY") or "sk-11b89bf9e5014910af37d6d759dec74b", ) # 4. 构建 RAG 链(Retrieval-Augmented Generation) template = """ 你是一个专业的资产中心接口顾问,请根据以下上下文回答问题。 如果不知道答案,请说“根据现有文档无法回答”,不要编造。 上下文: {context} 问题: {question} """ prompt = ChatPromptTemplate.from_template(template) rag_chain = ( {"context": retriever, "question": RunnablePassthrough()} | prompt | llm | StrOutputParser() ) # 5. 提供调用函数 # Gradio ChatInterface 默认会把 (message, history) 作为两个参数传进来 def ask_question(message: str, history=None) -> str: # 我们这里只关心当前用户问题 message,忽略 history return rag_chain.invoke(message)
然后需要一个供agent学习的知识集,这里用一个txt
【获取资产列表】 接口地址: GET /api/v1/assets 请求参数: page (int), size (int) 返回字段: id, name, type, status 错误码: 401-未授权, 404-资源不存在 【创建资产】 接口地址: POST /api/v1/assets 请求体: { "name": "string", "type": "server" } ...
主要的就是环境需要使用python3.11的,从官网下载即可,3.14的没试验成功,然后建立虚拟环境,整体结构如下图:

激活py311虚拟环境后,就是安装一些必要的包,期间运行python app.py的任何报错都可以让cursor的agent解决,然后就出现期盼已久的成功画面了:

w

浙公网安备 33010602011771号