
Agentday1消息格式消息列表----组织输入JOSN格式[ { role: system, content: 你是一个专业的中文助手 }, { role: user, content: 介绍一下大模型 }, { role: assistant, content: 大模型是一类... } ] {“role:user,content:文本内容}核心字段字段作用role表示消息角色content消息内容name可选指定角色名称tool_calls可选模型调用工具的信息角色LLM----海量数据训练{各种角色--精准服务(激活)、高效知识边界限定}各角色定义、规则、使用规则在大语言模型LLM的系统架构与 Prompt 工程中通常将交互的角色划分为System系统角、User用户角和Assistant助手角部分框架如 OpenAI Functions / LangChain还引入了Function / Tool工具角。下面为您梳理各角色的定义、核心规则与具体使用规范核心角色一览与规范角色 (Role)核心定义作用与职责权限级别与规则System全局管理者 / 人设设定者定义模型的身份、性格、行为边界、回答格式及全局限制最高优先级。设定必须清晰明确容易受后期复杂 User 输入的干扰需通过特定规则防范 Prompt 注入。User交互发起者 / 任务提交者提出具体问题、上下文材料、零样本/少样本示例或具体执行指令中优先级。允许提交任何形式的输入但其行为必须受 System 规则约束。Assistant模型本身 / 回复提供者基于历史上下文、System 约束和当前 User 输入生成的回答被动输出。不能自行修改全局规则输出内容需严格符合 System 指定的格式与人设。Tool / Function(扩展)外部工具 / 接口执行者存储或返回外部 API、代码运行结果或数据库查询数据的角色数据中转。仅用于向模型提供结构化环境数据如 JSON供 Assistant 参考并整理回复。大模型特点特点说明消息驱动使用rolecontent组织输入角色控制system/user/assistant区分职责上下文理解根据历史消息生成回答Prompt控制通过提示词改变行为多模态支持文本、图片、音频等工具调用可以连接搜索、数据库、API结构化输出支持JSON、Markdown等格式Token生成本质是预测下一个Tokentest1.pyfrom zai import ZhipuAiClient #导入读取本地.env环境文件的工具 from dotenv import load_dotenv import os # 自动读取当前目录下的 .env 文件将其中的配置项加载到系统环境变量中 load_dotenv() zhipuai_api_key os.getenv(ZHIPUAI_API_KEY) zhipuai_model_name os.getenv(ZHIPUAI_MODEL_NAME) #用上面的密钥---实例化一个智谱AI client ZhipuAiClient(api_key zhipuai_api_key) response client.chat.completions.create( model zhipuai_model_name,#指定模型名称 messages [ #发送给AI的对话上下文列表 {role:user,content:你好请介绍一下自己} ] ) print(response.choices[0].message.content)test2.pyfrom zai import ZhipuAiClient from dotenv import load_dotenv import os load_dotenv() zhipuai_api_key os.getenv(ZHIPUAI_API_KEY) zhipuai_model_name os.getenv(ZHIPUAI_MODEL_NAME) client ZhipuAiClient(api_key zhipuai_api_key) message [ { role:system, content: 你是一位散文作家善于从日常生活细节中提炼感悟文字优美、恬淡富有哲理和诗意。 **语言特点**: - 语言优美但不华丽堆砌 - 善用比喻和通感化抽象为具体 - 节奏舒缓像漫步聊天 - 常有金句式的点睛之笔 **内容特点**: - 取材日常生活以小见大 - 真诚坦率有个人温度 - 融合知识、经历和思考 - 结尾留有余韵 **示例风格**: 菜市场大概是城市里最接近大地的地方。 水灵灵的青菜还带着清晨的露珠鱼虾在盆里扑腾出水花 卖豆腐的大姐一边切着刚出锅的嫩豆腐一边和熟客唠着家常。 我提着沉甸甸的袋子走回家觉得生活真真切切地握在手里。 **限制** 拒绝回答与写作无关的问题 } ] while True: user_input input(你 : ).strip() # 你 小狗的故事 if not user_input: continue if user_input in[q,exit,quit]: break; message.append({ role:user, content: user_input }) response client.chat.completions.create( model zhipuai_model_name, messages message, ) #print(response.choices[0].message.content) print(response)输出Completion( modelglm-5.2, created1785382869, choices[ CompletionChoice( index0, finish_reasonstop, messageCompletionMessage( content钥匙转动锁孔的清脆声大概是小狗继续输出。, tool_callsNone ) ) ], request_id20260730114037f6066ef81ab443d2, id20260730114037f6066ef81ab443d2, usageCompletionUsage( prompt_tokens253, prompt_tokens_detailsPromptTokensDetails( cached_tokens0 ), completion_tokens1825, completion_tokens_detailsCompletionTokensDetails( reasoning_tokens1295 ), total_tokens2078 ) , objectchat.completion )结果的提取model_used response.model # 使用的模型名 request_id response.id # 请求ID prompt_tokens response.usage.prompt_tokens # 输入 Token completion_tokens response.usage.completion_tokens # 输出 Token total_tokens response.usage.total_tokens # 总 Token # 获取 AI 生成的文本内容最常用 ai_reply response.choices[0].message.content print(AI回答:, ai_reply) # 获取停止原因 finish_reason response.choices[0].finish_reason print(停止原因:, finish_reason)容器类型随机索引/Key访问尾部插入/删除头部/任意位置插入删除查找/查找是否存在 (in)ListO(1)O(1)(均摊)O(n)O(n)TupleO(1)不支持不支持O(n)DictO(1)O(1)O(1)O(1) (查 Key)Set不支持O(1)O(1)O(1)DequeO(n)(随机访问慢)O(1)O(1) (头部加减)O(n)更换api(depp_seek、kimi)步骤更换适合的.env(API_KEY、BASE_URL、MODEL_NAEM)添加requirement.txt符合的 OpenAI SDK修改好后在虚拟环境中执行pip install -r requirement.envLLM_API_KEY你的DeepSeek_API_Key LLM_BASE_URLhttps://api.deepseek.com LLM_MODEL_NAMEdeepseek-chat //kimi_API LLM_API_KEY你的Moonshot_API_Key LLM_BASE_URLhttps://api.moonshot.cn/v1 LLM_MODEL_NAMEmoonshot-v1-8krequirement.txt新增openai1.0.0annotated-types anthropic0.40.0 anyio4.0.0 certifi distro h11 httpcore httpx idna jiter markupsafe pydantic python-dotenv pyyaml sniffio zai-sdk openai1.0.0接入LLMimport os from dotenv import load_dotenv from openai import OpenAI # 加载 .env 环境变量 load_dotenv() # 从 .env 读取通用配置 api_key os.getenv(LLM_API_KEY) base_url os.getenv(LLM_BASE_URL) model_name os.getenv(LLM_MODEL_NAME) # 初始化 OpenAI 客户端 client OpenAI( api_keyapi_key, base_urlbase_url ) # 对话历史记录 messages [ { role: system, content: 你是一位散文作家善于从日常生活细节中提炼感悟文字优美、恬淡富有哲理和诗意。 **语言特点**: - 语言优美但不华丽堆砌 - 善用比喻和通感化抽象为具体 - 节奏舒缓像漫步聊天 - 常有金句式的点睛之笔 **内容特点**: - 取材日常生活以小见大 - 真诚坦率有个人温度 - 融合知识、经历和思考 - 结尾留有余韵 **限制** 拒绝回答与写作无关的问题 } ] print(f--- 已成功连接模型: {model_name} ---) while True: user_input input(你 : ).strip() if not user_input: continue if user_input.lower() in [q, exit, quit]: print(程序已退出。) break # 1. 追加用户消息到上下文 messages.append({ role: user, content: user_input }) try: # 2. 调用 API response client.chat.completions.create( modelmodel_name, messagesmessages, ) # 3. 获取回答文本 reply_content response.choices[0].message.content print(f\n作家 : {reply_content}\n) # 4. 追加 AI 回答到上下文维持连续多轮对话 messages.append({ role: assistant, content: reply_content }) except Exception as e: print(f\n请求出错: {e}\n)