博客 / 詳情

返回

【原】Python+AI學習筆記(01)大模型調用準備工作 與 OpenAI庫基礎使用

 1 # 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_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
12 )
13 
14 completion = client.chat.completions.create(
15     model="qwen3-max",  # 可以按需更換為其它深度思考模型
16     messages=[
17         {"role": "system", "content": "You are a helpful assistant"},
18         {"role": "user", "content": "你是誰?"}
19     ],
20     stream=True
21 )
22 
23 for chunk in completion:
24     print(chunk.choices[0].delta.content, end="", flush=True)

 

 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_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
12 )
13 
14 completion = client.chat.completions.create(
15     model="qwen3-max",  # 可以按需更換為其它深度思考模型
16     messages=[
17         {"role": "system", "content": "You are a helpful assistant"},
18         {"role": "user", "content": "你是誰?"}
19     ],
20     stream=True
21 )
22 
23 for chunk in completion:
24     print(chunk.choices[0].delta.content, end="", flush=True)
 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_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
39 )
40 
41 response = client.chat.completions.create(
42     model="qwen3-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三個參數,並設置stream=True,創建類的實例對象
 3 # 2、對於大模型的返回結果,使用for循環輸出內容
 4 
 5 from openai import OpenAI
 6 
 7 client = OpenAI(
 8     base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
 9 )
10 
11 response = client.chat.completions.create(
12     model="qwen3-max",  # 可以按需更換為其它深度思考模型
13     messages=[
14         {"role": "system", "content": "你是資深Python專家,並且回答簡潔不説廢話"},
15         {"role": "assistant", "content": "好的,我是資深Python專家,並且回答簡潔不説廢話,您要問什麼問題?"},
16         {"role": "user", "content": "編寫Python代碼,輸出1-10的數字"}
17     ],
18     stream=True
19 )
20 
21 for chunk in response:
22     print(
23         chunk.choices[0].delta.content,
24         end="",  # 設置每段之間以空字符串分隔
25         flush=True  # 設置立即刷新緩衝區
26     )
 1 # OpenAI庫附帶歷史消息調用模型
 2 # 調用大模型時,在messages這個list對象中,編寫歷史消息提供給大模型
 3 
 4 from openai import OpenAI
 5 
 6 client = OpenAI(
 7     base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
 8 )
 9 
10 response = client.chat.completions.create(
11     model="qwen3-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     stream=True
21 )
22 
23 for chunk in response:
24     print(
25         chunk.choices[0].delta.content,
26         end="",  # 設置每段之間以空字符串分隔
27         flush=True  # 設置立即刷新緩衝區
28     )

 

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.