Agent学习day02
https://helloagents.pro/#preface目录6接入大模型LLM为什么要 .envrequirements.txtAPI 到底是什么什么是OpenAI SDKSDK 和 API 是什么关系7OpenAI SDK 的核心对象——Client什么是 Client客户端创建 Client 的真正含义真正重要的是 client.chat.completions.create()role 是什么意思8第一次调用 LLM真正的 AI第一步安装 OpenAI SDK第二步创建 .env第三步创建 config.py第四步创建 llm.py第五步第一次发送请求response 到底是什么9发送第一条真正的大模型请求第一步创建 Client第二步发送请求第三步messages第四步response第五步usage注册SiliconFlow硅基流动选择Qwen/Qwen3.6-35B-A3B创建API密钥编写代码.envconfig.pyllm.py控制台运行10把 LLM 封装成可复用模块第一步修改 llm.py第二步创建测试文件 test_llm.py升级llm.py升级test_llm.py6接入大模型LLMLLM 只是根据 Tool 的描述做匹配。hello_agent/ │ ├── main.py # 程序入口 ├── agent.py # Agent ├── tools.py # Tool ├── registry.py # Tool注册 ├── llm.py # 调用LLM ├── config.py # API Key ├── requirements.txt └── .env为什么要 .env将API_KEYsk-xxxxxxxxxxxxxxxx直接放在代码中不规范。requirements.txt以后别人拿到项目直接pip install -r requirements.txt对应需要的全部环境就好了。API 到底是什么API 就是程序帮你完成这件事。什么是OpenAI SDKSDK 全称是Software Development Kit软件开发工具包别人帮你写好的一套代码让你不用重复造轮子。SDK 别人写好的工具库。OpenAI SDK是OpenAI 提供了一个官方 Python 库。安装pip install openai安装以后from openai import OpenAI就是导入 OpenAI SDK。以后你就不用自己写 HTTP 请求。SDK 和 API 是什么关系可以理解为API 是餐厅。 SDK 是服务员。你不用自己进厨房。只需要告诉服务员我要一份牛肉面。服务员帮你下单。帮你端回来。SDK 就是那个服务员。API 是大模型提供的能力OpenAI SDK 是官方提供的 Python 工具它把复杂的网络请求封装起来让我们可以用几行 Python 代码调用大模型。7OpenAI SDK 的核心对象——Client几乎所有的Agent项目的第一行代码如下from openai import OpenAI client OpenAI( api_key你的API Key )什么是 Client客户端Client 就是你的程序和大模型服务器之间的通信员。创建 Client 的真正含义创建一个能够访问 GPT 服务的客户端。里面会保存 API Key你的身份 Base URL服务器地址 网络连接配置以后所有请求都通过这个 client 发出去。真正重要的是 client.chat.completions.create()response client.chat.completions.create( modelgpt-4o, messages[ { role:user, content:你好 } ] )role 是什么意思目前先记三个。system 告诉模型你是谁。{ role:system, content:你是一名科研助手。 }user 用户说的话。{ role:user, content:你好 }assistant 模型以前说过的话。{ role:assistant, content:你好有什么可以帮助你 }8第一次调用 LLM真正的 AI让 Python 和大模型真正说上第一句话。第一步安装 OpenAI SDK打开 PyCharm 的 Terminal不是 Python Console。输入pip install openai python-dotenv安装完成后进行测试一下pip show openai第二步创建 .env内容是OPENAI_API_KEYxxxxxxxxxxxxxxxxxxxx BASE_URLhttps://xxxxxxxx MODELxxxxxxxx第三步创建 config.pyimportosfromdotenvimportload_dotenv load_dotenv()API_KEYos.getenv(OPENAI_API_KEY)BASE_URLos.getenv(BASE_URL)MODELos.getenv(MODEL)整个项目以后只从这里读取配置。第四步创建 llm.py开始真正调用 SDK。fromopenaiimportOpenAIfromconfigimportAPI_KEY,BASE_URL clientOpenAI(api_keyAPI_KEY,base_urlBASE_URL)第五步第一次发送请求fromconfigimportMODEL responseclient.chat.completions.create(modelMODEL,messages[{role:user,content:你好}])print(response)response 到底是什么它就是一个 Python 对象。9发送第一条真正的大模型请求SDK只是一个快递员真正回答问题的是远程服务器上的模型。第一步创建 ClientfromopenaiimportOpenAI clientOpenAI(api_keyAPI_KEY,base_urlBASE_URL)只是创建了一个能够和服务器通信的客户端。第二步发送请求responseclient.chat.completions.create(...)第三步messages这是 Agent 最重要的数据结构。messages[{role:user,content:你好}]第四步response服务器返回response真正的回答在response.choices[0].message.content第五步usageprint(response.usage)可能得到prompt_tokens18 completion_tokens62 total_tokens80之后收费会按照对应的token数来计算。注册SiliconFlow硅基流动选择Qwen/Qwen3.6-35B-A3B创建API密钥编写代码.envOPENAI_API_KEYsk-sgdohmdslorteqctbnrfvxjadroixabksevwdqxzcydnukuv BASE_URLhttps://api.siliconflow.com/v1 MODELQwen/Qwen3.6-35B-A3Bconfig.py# API Keyimportosfromdotenvimportload_dotenv load_dotenv()OPENAI_API_KEYos.getenv(OPENAI_API_KEY)BASE_URLos.getenv(BASE_URL)MODELos.getenv(MODEL)llm.pyfromopenaiimportOpenAIfromconfigimportOPENAI_API_KEY,BASE_URL,MODEL clientOpenAI(api_keyOPENAI_API_KEY,base_urlBASE_URL)responseclient.chat.completions.create(modelMODEL,messages[{role:user,content:你好请用一句话介绍你自己。}])answerresponse.choices[0].message.contentprint(answer)print(Token 使用情况,response.usage)控制台运行cd C:\Users\findx\PycharmProjects\pythonProject\hello_agentpython llm.py10把 LLM 封装成可复用模块第一步修改 llm.pyfromopenaiimportOpenAIfromconfigimportOPENAI_API_KEY,BASE_URL,MODEL clientOpenAI(api_keyOPENAI_API_KEY,base_urlBASE_URL)defchat(prompt:str)-str:responseclient.chat.completions.create(modelMODEL,messages[{role:user,content:prompt}])returnresponse.choices[0].message.content第二步创建测试文件 test_llm.pyfromllmimportchat answerchat(请用一句话解释什么是 Agent。)print(answer)运行python test_llm.py升级llm.pyfromopenaiimportOpenAIfromconfigimportOPENAI_API_KEY,BASE_URL,MODEL clientOpenAI(api_keyOPENAI_API_KEY,base_urlBASE_URL)defchat(messages):responseclient.chat.completions.create(modelMODEL,messagesmessages)returnresponse.choices[0].message.content升级test_llm.pyfromllmimportchat messages[{role:system,content:你是一名Agent开发导师。},{role:user,content:请介绍一下Agent。}]answerchat(messages)print(answer)