精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文告訴你如何用 Python 操作 ChatGPT

人工智能
如果要通過 API 來訪問 GPT 模型,那么不管什么版本都是收費的,至于費用多少則取決于 token 的數量。GPT 會對文本進行分詞,切分后的結果就是一個個的 token,而 token 的數量決定了費用。

楔子

ChatGPT 相信大家都用過,你覺得它給你的工作帶來了多少幫助呢?目前我們使用 ChatGPT 的方式是通過瀏覽器訪問 chat.openai.com,然后輸入問題,就像下面這樣。

圖片圖片

除了網頁之外,ChatGPT 還提供了 API 接口,讓我們可以在程序中訪問 GPT 模型。需要注意的是,如果使用網頁,那么 GPT 3.5 是免費的,GPT 4 則是一個月收費 20 美元。

但如果要通過 API 來訪問 GPT 模型,那么不管什么版本都是收費的,至于費用多少則取決于 token 的數量。GPT 會對文本進行分詞,切分后的結果就是一個個的 token,而 token 的數量決定了費用。

那么 Python 如何訪問 GPT 模型呢?首先需要安裝一個包,直接 pip install openai 即可。

然后登錄 platform.openai.com/api-keys,創建一個 API-KEY,如果要通過接口訪問,它是不可或缺的。

下面就可以通過 Python 來訪問了,我們舉例說明。

生成文本

我們可以給 GPT 一段話,讓它以文本的形式生成回復內容。

from openai import OpenAI
import httpx
# 我的 API_KEY,以及代理
from config import API_KEY, PROXIES

# openai 底層是通過 httpx 發送請求
# 但因為眾所周知的原因,我們不能直接訪問,需要設置代理
httpx_client = httpx.Client(proxies=PROXIES)
# 然后指定 api_key 參數和 httpx_client 參數
# 如果你不指定 httpx_client,那么內部會自動創建,但此時就無法設置代理了
# 當然要是你當前機器的網絡能直接訪問,也可以不用指定 http_client 參數
client = OpenAI(
    api_key=API_KEY,
    http_client=httpx_client
)

chat = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "1 + 1 等于幾",
        },
    ],
    model="gpt-3.5-turbo",
)
# chat.choices[0] 返回的是 pydantic 里面的 BaseModel
# 我們可以調用 dict 方法轉成字典
print(chat.choices[0].dict())
"""
{
    'finish_reason': 'stop', 
    'index': 0, 
    'logprobs': None, 
    'message': {'content': '1 + 1 等于2。',
                'role': 'assistant', 
                'function_call': None, 
                'tool_calls': None}
}
"""

然后解釋一下 client.chat.completions.create 里面的參數。

messages

ChatGPT 是有記憶功能的,它在回答的時候會結合上下文。那么問題來了,如果是通過接口的話,怎么把這個上下文傳遞過去呢?

# 注意 messages 里面的字典的 "role" 這個 key
# 如果 "role" 為 "user",那么 "content" 表示用戶問的問題
# 如果 "role" 為 "assistant",那么 "content" 表示 GPT 的回答
chat = client.chat.completions.create(
    messages=[
        {
            "role": "user",  # 開發者輸入內容
            "content": "記住:高老師總能分享出好東西",
        },
        {
            "role": "assistant",  # GPT 回答
            "content": "好的,我知道了",
        },
        {
            "role": "user",  # 開發者輸入內容
            "content": "請問誰總能分享出好東西,告訴我那個人的名字",
        },
    ],
    model="gpt-3.5-turbo",
)
print(chat.choices[0].dict())
"""
{
    'finish_reason': 'stop', 
    'index': 0, 
    'logprobs': None, 
    'message': {'content': '高老師',
                'role': 'assistant', 
                'function_call': None, 
                'tool_calls': None}
}
"""

所以 messages 是一個列表,它里面可以接收多個消息,如果希望 GPT 擁有記憶功能,那么每一次都要將完整的對話傳遞過去,顯然這會比較耗費 token。

舉個例子,我們通過接口來模擬網頁版 GPT。

messages = []  # 負責保存消息
while True:
    content = input("請輸入內容:")
    messages.append({"role": "user", "content": content})
    # 發送請求
    chat = client.chat.completions.create(
        messages=messages, model="gpt-3.5-turbo"
    )
    # 除了通過 chat.choices[0].dict() 轉成字典之外
    # 也可以直接通過 chat.choices[0].message.content 獲取回復內容
    gpt_reply = chat.choices[0].message.content
    print(f"GPT 回答如下:{gpt_reply}")
    # 將 GPT 的回復添加進去,開啟下一輪對話
    messages.append({"role": "assistant", "content": gpt_reply})

執行程序,效果如下:

圖片圖片

由于每次都要將歷史對話一起帶過去,所以這個過程比較耗費 token。

model

然后是 model 參數,它表示 GPT 所使用的模型,支持如下種類。

"gpt-4-0125-preview",
"gpt-4-turbo-preview",
"gpt-4-1106-preview",
"gpt-4-vision-preview",
"gpt-4",
"gpt-4-0314",
"gpt-4-0613",
"gpt-4-32k",
"gpt-4-32k-0314",
"gpt-4-32k-0613",
"gpt-3.5-turbo",
"gpt-3.5-turbo-16k",
"gpt-3.5-turbo-0301",
"gpt-3.5-turbo-0613",
"gpt-3.5-turbo-1106",
"gpt-3.5-turbo-0125",
"gpt-3.5-turbo-16k-0613",

一般選擇 gpt-3.5-turbo 或 gpt-4-turbo-preview 即可。

stream

默認情況下,GPT 會將內容全部生成完畢,然后一次性返回。顯然這在耗時比較長的時候,對用戶不是很友好。如果希望像網頁那樣,能夠將內容以流的形式返回,那么可以將該參數設置為 True。

chat = client.chat.completions.create(
    messages=[
        {"role": "user",
         "content": "請重復一句話:高老師總能分享出好東西"}
    ],
    model="gpt-3.5-turbo",
    stream=True  # 流式返回
)
for chunk in chat:
    print(chunk.choices[0].delta.dict())
"""
{'content': '', 'function_call': None, 'role': 'assistant', 'tool_calls': None}
{'content': '高', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '老', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '師', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '總', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '能', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '分享', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '出', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '好', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '東', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '西', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': None, 'function_call': None, 'role': None, 'tool_calls': None}
"""

如果 GPT 生成內容時耗時比較長,那么這種實時響應的方式會更友好。

n

GPT 回復內容的時候,可以讓它同一時刻回復多個版本,然后我們選擇一個滿意的。具體返回多少個,取決于 n 的大小,默認為 1。

chat = client.chat.completions.create(
    messages=[
        {"role": "user",
         "content": "世界上最高的雪山叫什么"}
    ],
    model="gpt-3.5-turbo",
    n=3,  # 同時生成三個回復
)
print(chat.choices[0].message.content)
"""
珠穆朗瑪峰(Mount Everest)
"""
print(chat.choices[1].message.content)
"""
世界上最高的雪山是珠穆朗瑪峰。珠穆朗瑪峰是位于喜馬拉雅山脈的一座高峰,
也是世界上海拔最高的山峰,海拔達到了8848米。
由于其極高的海拔和陡峭的山脊,珠穆朗瑪峰成為許多登山者夢寐以求的挑戰之一。
每年都有數百名登山者前往珠穆朗瑪峰嘗試攀登,但由于極端的氣候和高海拔帶來的極大危險,
很多人最終未能成功登頂。
"""
print(chat.choices[2].message.content)
"""
世界上最高的雪山是被稱為珠穆朗瑪峰,位于喜馬拉雅山脈,
是地球上海拔最高的山峰,也是登山愛好者們夢寐以求征服的目標。
"""

這里為了閱讀方便,我手動對回復的內容進行了換行。以上就是參數 n 的作用,不過說實話,為了不浪費 token,我們一般都會使用默認值 1。

生成圖像

再來看看如何生成圖像。

images = client.images.generate(
    # 提示詞
    prompt="幫我生成一張蕾姆的照片,她穿著婚紗站在教堂里",
    # 模型,可選 "dall-e-2" 或 "dall-e-3"
    model="dall-e-3",
    # 同時生成多少張照片,默認為 1
    n=1,
    # 圖像質量,可選 "standard" 或 "hd"
    # "hd" 更精細,但只支持 dall-e-3
    quality="standard",
    # 圖片的響應格式,可選 "url" 或 "b64_json"
    response_format="url",
    # 圖像大小,如果模型是 dall-e-2,可選 "256x256", "512x512", "1024x1024"
    # 如果模型是 dall-e-3,可選 "1024x1024", "1792x1024", "1024x1792"
    size="1024x1024",
    # 圖像風格,可選 "vivid" 或 "natural","vivid" 更加超現實
    style="vivid",
)

print(images.data[0].url)
"""
返回的圖片鏈接
"""
print(images.data[0].b64_json)
"""
因為 response_format 是 url,所以 b64_json 為空
"""
print(images.data[0].dict())
"""
{
    "b64_json": None,
    "revised_prompt": "修正之后的提示詞",
    "url": "https://...."
}
"""

效果如下:

圖片圖片

感覺不太像啊,頭發不應該是藍色的嗎?

小結

以上就是 Python 調用 ChatGPT 的相關內容,當然還有很多其它功能,比如生成圖像之后,如果覺得不滿意,可以在原有圖像的基礎上繼續編輯。有興趣可以自己了解一下。

責任編輯:武曉燕 來源: 古明地覺的編程教室
相關推薦

2019-03-14 15:59:44

前端開發編程

2024-01-30 09:58:00

IP屬地在線服務

2019-03-19 15:28:30

Linux 系統 數據

2024-10-28 00:00:03

IP屬地地址

2023-02-07 07:32:12

Istio微服務治理

2022-08-26 12:46:04

NQA網絡質量分析

2022-04-25 15:23:18

分布式系統故障

2021-01-22 08:13:58

Java日期時間API

2018-04-26 04:20:42

數據科學簡歷編程

2021-04-09 13:23:27

比特幣貨幣數據

2018-03-01 18:15:10

2022-05-06 08:09:28

代碼提交開發

2022-01-18 08:04:37

數據分析 Python

2021-04-25 21:18:27

技術開發爬蟲

2023-05-04 08:24:52

ChatGPT產品經理工業革命

2020-03-23 20:40:25

比特幣數字貨幣區塊鏈

2022-08-26 07:02:57

Python工具分割

2023-05-11 08:26:56

2018-03-15 21:56:59

程序員技能Java

2019-08-16 08:30:22

數據庫PostgreSQL Oracle
點贊
收藏

51CTO技術棧公眾號

亚洲欧洲成人在线| 毛片aaaaa| 国产成人免费av一区二区午夜| ...中文天堂在线一区| 国产精品v欧美精品∨日韩| 在线观看中文字幕视频| 999久久久91| 精品国产一区二区三区四区四| 精品一区二区中文字幕| 男女啪啪在线观看| 不卡av在线网| 91精品视频播放| 日韩三级视频在线| 国产精品久久久久久久久久10秀| 精品免费视频.| youjizzxxxx18| 日本不卡影院| 国产精品麻豆久久久| 国产精品香蕉视屏| 一卡二卡三卡在线| 亚洲免费综合| 欧美大片大片在线播放| 久久久久亚洲av成人无码电影| 国产亚洲高清一区| 欧美亚洲尤物久久| 波多野结衣乳巨码无在线| 国产网站在线免费观看| 久久精品欧美日韩| 久久www免费人成精品| 97精品久久人人爽人人爽| 国产精品美女久久久| 免费91麻豆精品国产自产在线观看 | 国产精品99导航| 国产性生活网站| 久久综合成人| 亚洲天堂av综合网| 日韩aaaaa| 97久久亚洲| 91精品国产综合久久久久久久久久 | 国产精品在线看| www.com国产| 亚洲久久一区| 欧美精品福利视频| 岛国毛片在线观看| 91精品观看| 中文字幕在线观看亚洲| aaaaa一级片| 欧美久久精品| 精品爽片免费看久久| 精品人妻伦一二三区久| 都市激情久久| 精品成人a区在线观看| 亚洲精品乱码久久久久久9色| 欧美视频免费看| 欧美亚洲国产bt| 国产免费又粗又猛又爽| 婷婷六月国产精品久久不卡| 都市激情亚洲色图| 男人天堂网视频| xxx欧美xxx| 色综合久久88色综合天天6 | 国产美女高潮在线| 天天综合天天做天天综合| 国产在线播放观看| 超碰一区二区| 在线观看精品一区| 日韩av卡一卡二| 亚洲欧美综合久久久久久v动漫| 欧美色图第一页| av中文字幕网址| 欧美区一区二区| 欧美精品一区二| 久久午夜夜伦鲁鲁片| 丝袜美腿综合| 亚洲一区二区久久| 91精品一区二区三区蜜桃| 亚洲综合色网| 97国产suv精品一区二区62| 午夜精品三级久久久有码| 久久综合九色| 成人免费xxxxx在线观看| 亚洲av无码一区二区三区dv| 99久久伊人网影院| 亚洲欧美99| 欧美韩日亚洲| 色香蕉成人二区免费| 伊人影院综合在线| 91精品短视频| 日韩精品在线影院| 无码 人妻 在线 视频| 香蕉久久网站| 欧美激情精品久久久久久| 精品在线免费观看视频| 99在线|亚洲一区二区| 欧美一乱一性一交一视频| 一级做a爰片久久毛片| 欧美一级二区| 国产精品一区av| a天堂视频在线| 成人福利视频网站| 欧洲亚洲一区二区三区四区五区| 国产视频在线看| 亚洲色图丝袜美腿| 欧美精品久久久久久久自慰| 欧美日韩五码| 宅男在线国产精品| 午夜在线观看一区| 欧美精品福利| 日韩av免费在线观看| 中文字幕激情视频| 成人黄色av电影| 日韩性感在线| 黑人精品视频| 欧美色视频一区| 最新av免费在线观看| 网曝91综合精品门事件在线| xxxxxxxxx欧美| 日韩欧美a级片| 麻豆精品视频在线观看免费| 91久久偷偷做嫩草影院| 欧美套图亚洲一区| 亚洲另类在线视频| 日本www.色| 1769国产精品视频| 中文国产亚洲喷潮| 日本三级理论片| 久久精品72免费观看| 久久精品国产精品青草色艺 | 盗摄精品av一区二区三区| 欧美色欧美亚洲另类七区| 天堂资源在线中文| 岛国av一区二区三区| 国内精品国产三级国产aⅴ久| 杨幂一区二区三区免费看视频| 北条麻妃久久精品| 亚洲婷婷综合网| 不卡的av网站| 欧美日韩中文字幕在线播放| 欧美日韩精品免费观看视欧美高清免费大片| 欧美一区二区三区人| 五月婷婷婷婷婷| 久久精品一本| 激情视频在线观看一区二区三区| 国产在线观看91| 欧美色综合天天久久综合精品| 风间由美一二三区av片| 天天做天天爱天天综合网2021| 热久久免费视频精品| 天堂在线视频网站| 一区二区三区小说| 亚洲日本黄色片| 精品久久网站| 国产精品99久久久久久人| 乱色精品无码一区二区国产盗| 亚洲一区在线看| 国产伦精品一区二区三区妓女下载 | 日韩一区二区在线| 国产精品青青在线观看爽香蕉| 亚洲精品字幕在线观看| 一区二区三区不卡在线观看| 亚洲综合在线一区二区| 91精品一区二区三区综合在线爱 | 亚洲天堂av片| 91色.com| 男女曰b免费视频| 精品欠久久久中文字幕加勒比| 久久久久久国产精品美女| 国产99久久九九精品无码免费| 日韩一区日韩二区| 国产精品嫩草影院8vv8| 久久久久久久久国产一区| 国产精品入口尤物| 视频免费一区| 欧美影院一区二区| 欧美日韩精品在线观看视频| 国产精品夜夜嗨| 台湾无码一区二区| 北条麻妃在线一区二区免费播放| 精品视频9999| 日韩中文字幕观看| 亚洲v精品v日韩v欧美v专区| 国产视频精品视频| 久久久久国产精品一区二区| 日本不卡二区| 成人动漫视频在线观看| 欧美精品性视频| 日中文字幕在线| 一本色道亚洲精品aⅴ| 黄色片网站免费| 韩国精品在线观看| 国产美女永久无遮挡| 欧美福利在线播放网址导航| 97精品一区二区视频在线观看| 成人免费一区二区三区视频网站| 欧美日韩国产影片| 久草视频手机在线观看| 91色porny蝌蚪| 国产精品视频黄色| 午夜精品网站| 国产欧美精品一区二区三区| 亚洲精品永久免费视频| 在线观看国产精品91| 国产特级aaaaaa大片| 精品久久久国产| 女同久久另类69精品国产| 国产精品一区二区在线播放| 日本a在线免费观看| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲一区亚洲二区亚洲三区| 麻豆mv在线看| 亚洲美女又黄又爽在线观看| 国产永久免费视频| 黑人巨大精品欧美一区二区三区| 日本乱子伦xxxx| 丁香啪啪综合成人亚洲小说 | 国产剧情在线观看| 日韩三级视频在线看| 日本三级欧美三级| 国产精品免费丝袜| 成年人的黄色片| 国产一区二区三区综合| 你懂的av在线| 亚洲v在线看| 精品综合久久久| 精品国产亚洲一区二区三区大结局| 欧美精品中文字幕一区| fc2在线中文字幕| 亚洲精品短视频| 99视频在线观看免费| 91国偷自产一区二区开放时间| www青青草原| 中文字幕第一区综合| 右手影院亚洲欧美| 国产91在线看| 在线黄色免费看| 久久久精品午夜少妇| 欧美午夜性视频| 亚洲91视频| 2021狠狠干| 91亚洲国产高清| 日本一区高清不卡| 天海翼亚洲一区二区三区| aa成人免费视频| 成人精品毛片| 91亚色免费| 国产亚洲亚洲国产一二区| 国产精品黄色av| 视频二区不卡| 国产精品久久久一区| 欧美一区国产| 欧美性受xxx| 97天天综合网| 久久久久久综合网天天| 天天色天天射天天综合网| 久久在线视频在线| 激情影院在线观看| 久久久精品国产网站| 97人人在线| 中文字幕日韩精品在线观看| 午夜视频在线播放| 亚洲深夜福利在线| 国产香蕉视频在线看| 亚洲欧美制服中文字幕| 色视频在线看| 亚洲视频在线免费观看| 第一页在线观看| 上原亚衣av一区二区三区| 国产福利在线| 中文字幕久久亚洲| 在线免费看a| 亚洲欧美在线免费| 麻豆电影在线播放| 久久综合网hezyo| 最新日本在线观看| 久久久久成人精品| 韩日毛片在线观看| 91精品国产自产在线| 国产精品美女久久久久人| 亚洲综合成人婷婷小说| 亚洲精品不卡在线观看| 国产v亚洲v天堂无码| 视频一区国产| 免费久久99精品国产自| 欧美日韩国产一区二区三区不卡| 欧美日韩国产高清视频| 日韩在线看片| 日韩欧美国产综合在线| 天堂蜜桃一区二区三区| 男女视频在线看| 国产精品一区久久久久| 欧美xxxx×黑人性爽| 久久久久国产精品人| 精品少妇一区二区三区密爱| 亚洲福利一区二区三区| 无码人妻av免费一区二区三区| 欧美色图第一页| 午夜精品久久久久久久第一页按摩 | 欧美性xxx| 91在线观看免费观看| 6080成人| 久久国产精品久久精品国产| 99热在线成人| 精品少妇一区二区三区在线| 日本女人一区二区三区| 天天av天天操| 成人深夜视频在线观看| 亚洲日本久久久| 国产精品久久久久久久久搜平片| 久久激情免费视频| 91成人网在线| 亚洲精品国产片| 尤物yw午夜国产精品视频| 日皮视频在线观看| 日本精品久久久久影院| 国产精品传媒| 一区二区三区四区国产| 极品少妇一区二区三区| 三级在线视频观看| 国产91精品一区二区麻豆网站 | 伊人网综合在线| 亚洲成人av片在线观看| caoporn97在线视频| 日本午夜精品理论片a级appf发布| 国产精品一区二区美女视频免费看 | 成人不卡免费av| 疯狂撞击丝袜人妻| 色悠悠久久综合| 国产一区二区三区成人| 中文字幕av一区二区| 中文在线аv在线| 99re热精品| 9999国产精品| 污片在线免费看| 久久青草国产手机看片福利盒子 | 午夜精品久久久久久久白皮肤| av成人亚洲| 蜜桃久久精品乱码一区二区| 中文一区一区三区免费在线观看| 欧美 激情 在线| 91在线精品一区二区三区| 欧美三级日本三级| 欧美浪妇xxxx高跟鞋交| 国产有码在线| 91干在线观看| 中日韩免视频上线全都免费| 日韩a级在线观看| 国产黄色91视频| 午夜爽爽爽男女免费观看| 9191久久久久久久久久久| 懂色av中文在线| 国产精品户外野外| av中文一区| www.四虎成人| 久久精品一区四区| 激情网站在线观看| 亚洲人成五月天| 91白丝在线| 欧美日韩一区综合| 视频一区二区三区入口| 女人又爽又黄免费女仆| 一本色道亚洲精品aⅴ| 国产大学生校花援交在线播放| 日韩av电影免费观看高清| 四虎影视精品| 欧美黄色一级片视频| 国产丝袜在线精品| www.av88| 日韩有码在线观看| 在线日韩三级| 日本大胆人体视频| 菠萝蜜视频在线观看一区| 国产黄色片视频| 日韩hd视频在线观看| 丁香影院在线| 欧美一区1区三区3区公司| 久久久久网站| 中国美女黄色一级片| 欧美高清视频在线高清观看mv色露露十八| a级影片在线观看| 国产精品美女久久久久av福利| 禁久久精品乱码| 亚洲天堂网一区二区| 欧美日韩视频专区在线播放| 午夜国产福利在线| 91免费看网站| 在线亚洲一区| 亚洲ⅴ国产v天堂a无码二区| 欧美日产在线观看| 国内在线免费视频| 欧美精品免费观看二区| 国产美女视频一区| 日韩经典在线观看| 亚洲日韩中文字幕| 国产精品成人3p一区二区三区 | 三级久久三级久久久| 精品伦精品一区二区三区视频密桃| 日韩一区二区精品在线观看| 嗯啊主人调教在线播放视频 | 嫩草精品影院| 国产精品va在线播放我和闺蜜|