Python+AI学习笔记(01)大模型调用准备工作 与 OpenAI库基础使用
Python AI 准备工作 2 # 1、在阿里百炼大模型服务平台注册账号并登录激活 3 # 2、点击左侧菜单的“密钥管理”创建APIKey 4 # 3、选择合适的模型并点击左侧菜单的“模型用量”开启“免费额度用完即停”这样等到免费额度用完就停止使用不会私下扣费 5 # 4、安装OpenAI库使用pip install openai因为国内网络原因可以使用镜像快速安装使用pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple 6 7 from openai import OpenAI 8 9 client OpenAI( 10 api_key这里填写阿里百炼大模型服务平台生成的APIKey, 11 base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 12 ) 13 14 completion client.chat.completions.create( 15 modelqwen3-max, # 可以按需更换为其它深度思考模型 16 messages[ 17 {role: system, content: You are a helpful assistant}, 18 {role: user, content: 你是谁} 19 ], 20 streamTrue 21 ) 22 23 for chunk in completion: 24 print(chunk.choices[0].delta.content, end, flushTrue)1 # 设置环境变量保护APIKey以Windows 10系统为例 2 # 1、“此电脑”右键找到“属性”点击找到右侧的“高级系统设置”点击弹出“系统属性”窗口找到“高级”选项卡点击后即可看到“环境变量”点击开始设置环境变量 3 # 2、在弹出的窗口中找到位于下方的“系统变量” 4 # 3、点击新建变量名“OPENAI_API_KEY”变量值就是阿里百炼平台上创建的APIKey的值该设置用于OpenAI库 5 # 4、点击新建变量名DASHSCOPE_API_KEY变量值就是阿里百炼平台上创建的APIKey的值该设置用于Langchain库 6 # 5、设置后一定记得需要重启才能生效 7 8 from openai import OpenAI 9 10 client OpenAI( 11 base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 12 ) 13 14 completion client.chat.completions.create( 15 modelqwen3-max, # 可以按需更换为其它深度思考模型 16 messages[ 17 {role: system, content: You are a helpful assistant}, 18 {role: user, content: 你是谁} 19 ], 20 streamTrue 21 ) 22 23 for chunk in completion: 24 print(chunk.choices[0].delta.content, end, flushTrue)1 # OpenAI库的基础使用 2 # Step1、实例化OpenAI类对象使用OpenAI类的构造函数传入api_key可省略 和 base_url两个参数创建类的实例对象 3 # ① api_key模型服务商提供的APIKey密钥 4 # ② base_url模型服务器提供的API接入地址基于此参数可以切换不同的模型 5 # Step2、调用模型至少传入model 和 message两个参数创建ChatCompletion对象 6 # ① model设置使用的大模型比如qwen3-max 7 # ② message提供给大模型的数据message的类型为list可以包含多个字典数据每个字典包含role角色 和 content内容2个key 8 # role角色分为system角色、assistant角色 和 user角色 9 # system角色设定助手的整体行为、角色和规则为对话提供上下文框架是全局的背景设定影响后续所有交互 10 # assistant角色代表AI助手的回答 11 # user角色代表用户发送问题、指令或需求 12 # Step3、处理结果大模型返回的就是ChatCompletion对象返回形如下文的对象数据 13 # { 14 # id: xxx, 15 # object: xxxxx, 16 # created: 123456, 17 # model: xxx, 18 # choices: [ 19 # { 20 # index: 0, 21 # message: { 22 # role: assistant, 23 # content: 生成的回复内容 24 # }, 25 # finish_reason: stop # stop正常结束length令牌数超限function_call触发函数调用 26 # } 27 # ], 28 # usage: { # 令牌消耗统计 29 # prompt_tokens: 50, 30 # completion_tokens: 50, 31 # total_tokens: 50 32 # } 33 # } 34 35 from openai import OpenAI 36 37 client OpenAI( 38 base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 39 ) 40 41 response client.chat.completions.create( 42 modelqwen3-max, # 可以按需更换为其它深度思考模型 43 messages[ 44 {role: system, content: 你是资深Python专家并且回答简洁不说废话}, 45 {role: assistant, content: 好的我是资深Python专家并且回答简洁不说废话您要问什么问题}, 46 {role: user, content: 编写Python代码输出1-10的数字} 47 ] 48 ) 49 50 print(response.choices[0].message.content)1 # OpenAI库的流式输出 2 # 1、实例化OpenAI类对象使用OpenAI类的构造函数传入api_key可省略 、 base_url 和 stream三个参数并设置streamTrue创建类的实例对象 3 # 2、对于大模型的返回结果使用for循环输出内容 4 5 from openai import OpenAI 6 7 client OpenAI( 8 base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 9 ) 10 11 response client.chat.completions.create( 12 modelqwen3-max, # 可以按需更换为其它深度思考模型 13 messages[ 14 {role: system, content: 你是资深Python专家并且回答简洁不说废话}, 15 {role: assistant, content: 好的我是资深Python专家并且回答简洁不说废话您要问什么问题}, 16 {role: user, content: 编写Python代码输出1-10的数字} 17 ], 18 streamTrue 19 ) 20 21 for chunk in response: 22 print( 23 chunk.choices[0].delta.content, 24 end, # 设置每段之间以空字符串分隔 25 flushTrue # 设置立即刷新缓冲区 26 )1 # OpenAI库附带历史消息调用模型 2 # 调用大模型时在messages这个list对象中编写历史消息提供给大模型 3 4 from openai import OpenAI 5 6 client OpenAI( 7 base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 8 ) 9 10 response client.chat.completions.create( 11 modelqwen3-max, # 可以按需更换为其它深度思考模型 12 messages[ 13 {role: system, content: 你是AI助理并且回答简洁不说废话}, 14 {role: user, content: 中国有14亿人}, 15 {role: assistant, content: 好的}, 16 {role: user, content: 美国有4亿人}, 17 {role: assistant, content: 好的}, 18 {role: user, content: 两个国家共有多少人} 19 ], 20 streamTrue 21 ) 22 23 for chunk in response: 24 print( 25 chunk.choices[0].delta.content, 26 end, # 设置每段之间以空字符串分隔 27 flushTrue # 设置立即刷新缓冲区 28 )