[01]Agent项目:从0-1做一个命令行循环“对话式”AgentDemo
一、前情提要
最终结果:命令行Agent Demo
使用:OpenAI API + Python
所需工具:Python、VSCode、OpenAI API Key、虚拟环境(conda)、Git
二、环境安装
1.安装Python
通过Anaconda,创建Python12的虚拟环境
2.安装VSCode
(1)官网下载VSCode
(2)进入VSCode后安装Python插件
3.创建项目目录
4.安装依赖
(1)安装OpenAI SDK
pip install openai
(2)安装dotenv
pip install python-dotenv
三、配置LLM的API
1.申请API
本次采用硅基流动SiliconFlow的API Key。

2.保存API Key
(1)创建.env
注:文件就叫.env。![]()
(2)写
SiliconFlow_API_KEY=sk-faevswcryuqddrihwxescutiisvqpfztfvixhtimfomyffzc
注:“=”两边不要有空格,如SILICONFLOW_API_KEY = sk-xxx
四、写LLM调用
1.创建config.py
MODEL_NAME = "deepseek-ai/DeepSeek-V3.2"
BASE_URL = "https://api.siliconflow.cn/v1"
API_KEY_ENV = "SiliconFlow_API_KEY"
2.创建main.py
from openai import OpenAI
from dotenv import load_dotenv
import config
import os
#读取当前目录下的.env文件,会把.env中的内容加载到环境变量中
load_dotenv()
#创建一个OpenAI客户端对象,后续所有的大模型请求都通过client发送
client = OpenAI(
#从环境变量中读取API Key
api_key=os.getenv(config.API_KEY_ENV),
#设置请求的基础URL,默认是https://api.openai.com/v1。如果使用的是SiliconFlow的API,需要修改为https://api.siliconflow.cn/v1
base_url=config.BASE_URL
)
#向大模型发送一次对话请求
response = client.chat.completions.create(
#指定使用的模型,DeepSeek-V3.2是模型名称
model=config.MODEL_NAME,
#messages表示对话历史,是一个列表
messages=[
{
#role表示消息角色,user表示用户输入;#content表示消息内容,即用户真正说的话
"role": "user",
"content": "你好"
}
]
)
#打印模型回复内容。response是完整返回结果;choices[0]表示第一个回答;message.content表示回答文本
print(response.choices[0].message.content)
3.结果

注:后续还需要进行用户动态输入、封装函数、加入System Prompt、加入while循环等。
from openai import OpenAI
from dotenv import load_dotenv
import config
import os
#读取当前目录下的.env文件,会把.env中的内容加载到环境变量中
load_dotenv()
#创建一个OpenAI客户端对象,后续所有的大模型请求都通过client发送
client = OpenAI(
#从环境变量中读取API Key
api_key=os.getenv(config.API_KEY_ENV),
#设置请求的基础URL,默认是https://api.openai.com/v1。如果使用的是SiliconFlow的API,需要修改为https://api.siliconflow.cn/v1
base_url=config.BASE_URL
)
print("\n欢迎使用QM_AgentDemo!(输入'Q'或'q'结束对话)\n")
#保存对话历史,添加系统信息
messages = [
{
#role表示消息角色,system表示系统消息;#content表示消息内容,即给系统拟定的前提条件
"role": "system",
"content": "你是一名目标检测领域,具有前瞻目光的期刊编辑"
}
]
#向大模型开启循环对话请求
while True:
#获取用户输入
user_input = input("请输入你的问题:")
#程序结束条件
if user_input.lower() in['Q', 'q']:
print("对话结束")
break
#添加用户信息
messages.append({
#role表示消息角色,user表示用户输入;#content表示消息内容,即用户真正说的话
"role": "user",
"content": user_input
})
#向大模型发送一次对话请求
response = client.chat.completions.create(
#指定使用的模型,DeepSeek-V3.2是模型名称
model=config.MODEL_NAME,
#messages表示对话历史,传入的messages是一个列表
messages=messages
)
#打印模型回复内容。response是完整返回结果;choices[0]表示第一个回答;message.content表示回答文本
agent_reply = response.choices[0].message.content
print(f"模型回复:{agent_reply}\n")
#将模型回复也加入到对话历史
messages.append({
"role": "assistant",
"content": agent_reply
})
以上脚本能实现:配置系统prompt;用户动态输入,与LLM循环对话;用户输入'Q'或'q'结束对话。
4.流程的本质
Python程序
->HTTP请求
->SiliconFlow服务器
->DeepSeek模型
->返回结果
->print输出
五、下期规划——进入“Agent”环节
加入Tool Calling,比如weather_tool()、ticket_tool()、map_tool()等等。
更多推荐


所有评论(0)