Python-openai对话LLM
Python-openai对话LLM
先说明:openai开源框架,不是拥有chatGPT的openAI公司,当前为了更好的学习效果,直接使用阿里百炼(通义千问)进行LLM对话,当前仅仅使用到【client.chat.completions.create】接口进行结果获取

1-知识整理
- 1-openai的python开发框架和chatGPT的openAI公司没有任何关系,虽然调用方法的名称都是openai
- 2-openai进行单轮对话
from openai import OpenAIfrom settings import DASHSCOPE_API_KEYtry:# 创建 OpenAI 客户端client = OpenAI(api_key=DASHSCOPE_API_KEY,base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)# 获取模型的问答结果completion = client.chat.completions.create(# 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/modelsmodel="qwen-plus",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "你是谁?"},],)# print(completion.choices[0].message.content)print(completion.model_dump_json())
except Exception as e:print(f"错误信息:{e}")print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")
- 3-openai进行多轮会话-简单版
from openai import OpenAIfrom settings import DASHSCOPE_API_KEY# 创建一个函数,用于获取大模型响应
def get_response(messages):try:completion = client.chat.completions.create(model="qwen-plus",messages=messages)# print(completion.model_dump_json())return completion.choices[0].message.contentexcept Exception as e:print(f"错误信息:{e}")print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")return "大模型请求异常,请稍后再试"# 创建 OpenAI 客户端
client = OpenAI(api_key=DASHSCOPE_API_KEY,base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)# 初始化 messages-进行多轮对话
messages = []# 第 1 轮
messages.append({"role": "user", "content": "推荐一部关于太空探索的科幻电影。"})
print("第1轮")
print(f"用户:{messages[0]['content']}")
assistant_output = get_response(messages)
messages.append({"role": "assistant", "content": assistant_output})
print(f"模型:{assistant_output}\n")# 第 2 轮
messages.append({"role": "user", "content": "这部电影的导演是谁?"})
print("第2轮")
print(f"用户:{messages[-1]['content']}")
assistant_output = get_response(messages)
messages.append({"role": "assistant", "content": assistant_output})
print(f"模型:{assistant_output}\n")
- 4-openai进行多轮会话-循环版本
from openai import OpenAIfrom settings import DASHSCOPE_API_KEY# 创建 OpenAI 客户端
client = OpenAI(api_key=DASHSCOPE_API_KEY,base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)# 初始化 messages-进行多轮对话
messages = []
conversation_idx = 1
while True:# 1-业务参数定义reasoning_content = "" # 定义完整思考过程answer_content = "" # 定义完整回复is_answering = False # 判断是否结束思考过程并开始回复print("=" * 20 + f"第{conversation_idx}轮对话" + "=" * 20)conversation_idx += 1user_msg = {"role": "user", "content": input("请输入你的消息:")}messages.append(user_msg)# 2-创建聊天完成请求completion = client.chat.completions.create(# 您可以按需更换为其它深度思考模型model="qwen-plus",messages=messages,extra_body={"enable_thinking": True},stream=True,# stream_options={# "include_usage": True# })# 3-获取大模型响应print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")for chunk in completion:# 如果chunk.choices为空,则打印usageif not chunk.choices:print("\nUsage:")print(chunk.usage)else:delta = chunk.choices[0].delta# 打印思考过程if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:print(delta.reasoning_content, end='', flush=True)reasoning_content += delta.reasoning_contentelse:# 开始回复if delta.content != "" and is_answering is False:print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")is_answering = True# 打印回复过程print(delta.content, end='', flush=True)answer_content += delta.content# 将模型回复的content添加到上下文中messages.append({"role": "assistant", "content": answer_content})print("\n")
2-参考网址
- 阿里百炼平台API参考:https://bailian.console.aliyun.com/?spm=5176.29619931.J__Z58Z6CX7MY__Ll8p1ZOR.1.38fe521cU3isvj&tab=doc#/doc/?type=model&url=2841718
- Python使用openai对接仓库地址:https://gitee.com/enzoism/python_openai_chat
- Python-LLMChat
- Python-MCPAgent开发-DeepSeek版本
- Python-MCPAgent开发-代码解析
3-动手实操
1-UV环境管理
# 1-查看并指定环境
uv python list
uv python pin 3.10# 2-进行项目创建
uv init hello-aichat && cd hello-aichat# 3-指定本地运行环境
uv venv && source .venv/bin/activate# 4-本地环境安装依赖
uv pip install python-dotenv openai
2-openai-对话方法
from openai import OpenAIfrom settings import DASHSCOPE_API_KEYtry:# 阿里百炼平台API参考:https://bailian.console.aliyun.com/?spm=5176.29619931.J__Z58Z6CX7MY__Ll8p1ZOR.1.38fe521cU3isvj&tab=doc#/doc/?type=model&url=2841718client = OpenAI(api_key=DASHSCOPE_API_KEY,base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)completion = client.chat.completions.create(# 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/modelsmodel="qwen-plus",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "你是谁?"},],)# print(completion.choices[0].message.content)print(completion.model_dump_json())
except Exception as e:print(f"错误信息:{e}")print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")
4-思考作业
1-对比openai的agent框架
Python-MCPAgent开发-DeepSeek版本
2-openai有哪些核心业务对象
OpenAI 的 Python 开发框架(如 OpenAI Agents SDK)围绕“智能体”这一核心概念展开,其业务对象可归纳为以下五类:
-
Agent(智能体)
承载 LLM 配置(指令、模型、温度等)与运行上下文,是业务流程的入口和调度者。 -
Tool(工具)
将外部能力(函数、API、数据源)封装为可被 Agent 调用的标准化接口,使 LLM 具备“行动”能力。 -
Handoff(交接)
一种特殊的工具调用,用于在多个 Agent 之间转移控制权,实现多智能体协作与分工。 -
Guardrail(护栏)
可配置的输入/输出安全检查规则,用于防止有害或不合规内容,保障系统可靠性与合规性。 -
Tracing(追踪)
内建的运行日志与事件追踪机制,支持调试、性能分析和流程优化,是生产级可观测性的基础。
这些对象共同构成了 OpenAI Python 框架的业务内核:Agent 负责“思考与决策”,Tool 提供“执行手段”,Handoff 实现“多 Agent 编排”,Guardrail 保证“安全合规”,Tracing 提供“可观测性”。
