<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          極簡 Python:10分鐘會(huì)用 OpenAI / Kimi API

          共 6259字,需瀏覽 13分鐘

           ·

          2024-05-01 16:48

          背景

          之前寫了一份:寫給不會(huì)代碼的你:20分鐘上手 Python + AI但感覺還不夠簡單粗暴。


          于是就有了這篇 10 分鐘版的,讓你快速的開始使用各 AI 廠的 API。


          作為準(zhǔn)備工作,請(qǐng)先打開 Colab 的網(wǎng)站,并新建一個(gè)筆記本。

          網(wǎng)址: https://colab.research.google.com



          基礎(chǔ)版

          一切之前,你需要先獲取你 API key


          對(duì)于 OpenAI 用戶,訪問這里:

          https://platform.openai.com/api-keys


          對(duì)于 Kimi 用戶,訪問這里:

          https://platform.moonshot.cn/console/api-keys


          對(duì)于其他用戶...你自己看著找吧



          01
           復(fù)制代碼

          如果你是 OpenAI 的用戶,請(qǐng)將下面的代碼復(fù)制進(jìn) Colab:

          !pip install openaifrom openai import OpenAI
          client = OpenAI(    api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ",    )completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": "你好"} ])
          print(completion)


          如果你是其他 AI 的用戶,以 Kimi 為例,復(fù)制這個(gè):

          !pip install openaifrom openai import OpenAI
          client = OpenAI( api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ", base_url="https://api.moonshot.cn/v1"    )completion = client.chat.completions.create( model="moonshot-v1-8k", messages=[ {"role": "user", "content": "你好"} ])
          print(completion)


          注意:你要把 api_key 換成你的

          細(xì)心的你會(huì)發(fā)現(xiàn),無論是什么 AI API,大家的接口調(diào)用方法,都幾乎一致。唯變化的,是 base_url 和 model 的值。

          02
           執(zhí)行代碼

          選擇代碼單元格,點(diǎn)擊左側(cè)的“運(yùn)行”按鈕或快捷鍵 Ctrl + Enter,開始運(yùn)行代碼。 

          剛開始運(yùn)行時(shí),Colab 會(huì)安裝 OpenAI 庫,可能需要幾十秒,并輸出類似這樣的內(nèi)容:


          安裝完成后,你會(huì)看到回復(fù)被打印出來,類似這樣:


          仔細(xì)看這里的中文部分:‘你好!今天我能幫你做什么?’

          接口是通的!恭喜你已經(jīng)成功地與 AI 完成了第一次對(duì)話!

          03
           獲取回復(fù)內(nèi)容

          仔細(xì)看回復(fù),是不是很奇怪?里面有著 id、choices 這樣的詞。 


          其實(shí),這就像一個(gè)包裹,AI 的回復(fù)內(nèi)容被裝在了好幾層「盒子」里面。我們要一層一層地打開,才能看到最里面的回復(fù)內(nèi)容。 completion 就是最外面的那個(gè)大「盒子」,我們需要先打開它。 接下來是 choices,"choices"的意思是「選擇」,這里面裝著幾個(gè)備選的回復(fù),但通常我們只需要第一個(gè)。


          在 Python 里,我們用 [0] 來表示第一個(gè)。再打開 choices[0],我們會(huì)看到一個(gè)叫 message 的盒子。這里面裝的就是 ChatGPT 的回復(fù)了,但還差一點(diǎn)點(diǎn)。 最后,message 里面還有一層叫 content 的盒子,打開它,我們就能看到 ChatGPT 的回復(fù)內(nèi)容了。 


          所以,想要看到 ChatGPT 的回復(fù),我們需要一步一步地「拆盒子」: completion → choices → [0] → message → content 在代碼里,就是這樣寫: completion.choices[0].message.content。


          現(xiàn)在,讓我們把 print(completion) 改成 print(completion.choices[0].message.content) :

          !pip install openaifrom openai import OpenAI
          client = OpenAI(    api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ",    )completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": "你好"} ])
          print(completion.choices[0].message.content)


          這時(shí)候再運(yùn)行代碼,你就能看到 ChatGPT 干凈利落的回復(fù)了: 



          雖然這些"盒子"的名字看起來有點(diǎn)復(fù)雜,但你只需要記住用 completion.choices[0].message.content 就能打開最后一個(gè)"盒子",看到回復(fù)內(nèi)容。 以后如果你在學(xué)習(xí) Python 時(shí)遇到了類似的情況,不要害怕,就想象成在拆一個(gè)套娃,一層一層地打開,最后你就能得到你想要的結(jié)果了。

          到這里,你已經(jīng)學(xué)會(huì)使用 OpenAI API 了!


          高級(jí)一點(diǎn)

          如果每次提問,都要重復(fù)改代碼,就太累了

          所以,我們可以試試函數(shù)


          01
           函數(shù)是啥

          函數(shù)是一段可以不斷被復(fù)用的代碼,給定輸入后,就可以按邏輯給出輸出,你可以把很多東西都封裝成函數(shù)。

          舉個(gè)例子,給手游充值,就是一個(gè)函數(shù)。現(xiàn)在定義一個(gè)函數(shù):充值(金額),輸入一個(gè)金額后,就會(huì)返回對(duì)應(yīng)的結(jié)果:

          • 充值(0元),返回:「想一想,不充錢你會(huì)變得更強(qiáng)嗎?」

          • 充值(6元),返回:「想一想,就充這么一點(diǎn),你會(huì)變得更強(qiáng)嗎?」

          • 充值(618元),返回:「想一想,再充一點(diǎn),你就更強(qiáng)了」

          • 充值(114514元),返回:「你真是個(gè)大冤種」


          再來個(gè),可放在代碼里的例子,詩詞填空:_______,從此君王不早朝

          def poem(s):  print(f"{s},從此君王不早朝")


          在這個(gè)代碼里,把值放到 s 所在的位置,然后調(diào)用,它就會(huì)把你輸入的內(nèi)容+“從此君王不早朝”一并輸出,比如

          poem("春宵苦短日高起")poem("但使龍城飛將在")poem("我為將軍解戰(zhàn)袍")poem("雞哥練習(xí)兩年半")
          ?


          則你會(huì)得到:

          春宵苦短日高起,從此君王不早朝但使龍城飛將在,從此君王不早朝我為將軍解戰(zhàn)袍,從此君王不早朝雞哥練習(xí)兩年半,從此君王不早朝


          注意:這里說一些代碼規(guī)范

          • def poem(s): 其中的 def 是定義函數(shù)的意思,poem 是函數(shù)名,s 是參數(shù)名。

            • def 是固定寫法,別改

            • poem 和 s 你隨便改,看你喜歡

          • print(f"{s},從此君王不早朝"):是函數(shù)的輸出

            • 在函數(shù)里,內(nèi)容都要有一個(gè)縮進(jìn)(我通常是打一個(gè) tab)

            • print() 的括號(hào)是英文括號(hào)

            • f"{s},從此君王不早朝" 的意思是,將"{s},從此君王不早朝"中的{s}替換成 s 的值,比如替換成:雞哥練習(xí)兩年半

          02
           封裝提問

          現(xiàn)在,讓我們來用更正式的方式來重寫上面的調(diào)用。


          第一步,通過 pip 安裝 openai 的庫,并運(yùn)行(因?yàn)椋悴⒉恍枰看芜\(yùn)行代碼前,都重新安裝一遍環(huán)境):

          !pip install openai


          第二步,定義一個(gè)名為 ask 的函數(shù),將之前的提問代碼封裝起來,然后運(yùn)行,如:

          from openai import OpenAI
          client = OpenAI( api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ" )
          def ask(question): completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": f"{question}"} ])  print(completion.choices[0].message.content)


          這里我問了 GPT-3.5 三個(gè)問題:

          ask("隕石為什么總落在坑里?")ask("ATM 機(jī)里一般有幾個(gè)工作人員?")ask("GPT-5 啥時(shí)候發(fā)布?")
          ?


          運(yùn)行后,得到了:

          隕石總落在坑里是因?yàn)榭涌梢蕴峁┮欢ǔ潭鹊谋Wo(hù)和集中力量,有助于減輕隕石沖擊時(shí)的壓力和破壞力。此外,坑也可能會(huì)吸引和引導(dǎo)隕石朝向更集中的區(qū)域落下。因此,隕石在落下時(shí)通常會(huì)選擇坑陷落。通常情況下,ATM 機(jī)內(nèi)部不需要工作人員駐守。ATM 機(jī)是自助式設(shè)備,用戶可以直接在機(jī)器上進(jìn)行各種操作,如取款、存款、轉(zhuǎn)賬等。不過ATM 機(jī)由銀行或金融機(jī)構(gòu)負(fù)責(zé)維護(hù)和監(jiān)控,他們可能會(huì)派遣技術(shù)人員定期檢查和維護(hù)機(jī)器。目前還沒有官方消息表明GPT-5什么時(shí)候發(fā)布。OpenAI可能會(huì)在未來一兩年內(nèi)發(fā)布GPT-5或其他技術(shù)升級(jí)版本,但具體時(shí)間表尚不清楚。建議關(guān)注OpenAI官方發(fā)布的消息以獲取最新動(dòng)態(tài)。

          到這里,你已經(jīng)足以用 OpenAI API 來處理各種日常工作了!


          最后

          如果你希望學(xué)習(xí)更多模型的調(diào)用,比如聲音轉(zhuǎn)文字、文字轉(zhuǎn)圖片,或者更加細(xì)致的定義處理風(fēng)格(嚴(yán)謹(jǐn)還是更有創(chuàng)意的),可以參考 OpenAI 的官方文檔。


          文檔地址:

          https://platform.openai.com/docs/api-reference


          接下來本大聰明還會(huì)「以實(shí)用為核心」,再更新一篇新手極其友好的「Python Cheat Sheet」,幫助大家溫故知新。


          瀏覽 231
          1點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          1點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产激情AV在线 | 操屄视频免费在线观看 | 毛片电影免费看 | 日本三级在线网 | 天天看天天爽 |