一、前情提要

最终结果:命令行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()等等。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐