目录
2.1 新建agents_sdk_test1.python文件
0 环境准备
- ollama已部署推理模型qwen:7b(deepseek目前不支持function calling)
- 已安装miniconda环境
- 具备科学上网条件
1 开发环境准备
1.1 创建项目python环境
通过conda命令创建项目的python开发环境
conda create -n mcp_demo python=3.10
1.2 在pycharm创建项目
- 解释器类型:选择自定义环境
- 环境:选择现有
- 类型:选择conda
- 环境:选择上一步创建的环境
1.3 安装项目依赖
安装openai、openai-agents openai相关依赖
安装python-dotenv python读取环境配置文件依赖
pip install openai python-dotenv openai-agents
2 程序逻辑实现
2.1 新建agents_sdk_test1.python文件
2.2 导入相关依赖包
import os
from agents import set_default_openai_client, OpenAIChatCompletionsModel, Agent, Runner
from dotenv import load_dotenv
from openai import AsyncOpenAI
2.3 加载配置文件
load_dotenv()
2.4 定义openai client
def get_openai_client():
api_key = os.getenv('OPENAI_API_KEY')
base_url = os.getenv('BASE_URL')
return AsyncOpenAI(
api_key=api_key,
base_url=base_url
)
2.5 定义chat模型
def get_chat_model(external_client):
model_name = os.getenv('MODEL')
return OpenAIChatCompletionsModel(
model=model_name,
openai_client=external_client
)
2.6 定义agent
def get_agent(model):
return Agent(
name = "助手",
instructions = "你是一个助手,帮助用户回答问题。",
model = model
)
2.7 agent调用主流程
async def run_request():
external_client = get_openai_client()
set_default_openai_client(external_client)
agent = get_agent(get_chat_model(external_client))
result = await Runner.run(
agent,
"请写一首关于春天的诗"
)
return result.final_output
2.8 定义main入口
if __name__ == "__main__":
import asyncio
print(asyncio.run(run_request()))
3 完整代码
import os
from agents import set_default_openai_client, OpenAIChatCompletionsModel, Agent, Runner
from dotenv import load_dotenv
from openai import AsyncOpenAI
load_dotenv()
def get_openai_client():
api_key = os.getenv('OPENAI_API_KEY')
base_url = os.getenv('BASE_URL')
return AsyncOpenAI(
api_key=api_key,
base_url=base_url
)
def get_chat_model(external_client):
model_name = os.getenv('MODEL')
return OpenAIChatCompletionsModel(
model=model_name,
openai_client=external_client
)
def get_agent(model):
return Agent(
name = "助手",
instructions = "你是一个助手,帮助用户回答问题。",
model = model
)
async def run_request():
external_client = get_openai_client()
set_default_openai_client(external_client)
agent = get_agent(get_chat_model(external_client))
result = await Runner.run(
agent,
"请写一首关于春天的诗"
)
return result.final_output
if __name__ == "__main__":
import asyncio
print(asyncio.run(run_request()))