本博客的gitlab倉庫:地址,本博客對應(yīng)01文件夾。
序言:探索人工智能的新篇章
隨著人工智能技術(shù)的飛速發(fā)展,ChatGPT作為其中的佼佼者,已經(jīng)逐漸從實驗室走向了公眾視野。它不僅僅是一個簡單的聊天機(jī)器人,而是代表了自然語言處理(NLP)領(lǐng)域的前沿技術(shù)。在ChatGPT的幫助下,我們能夠?qū)崿F(xiàn)更自然、更智能的人機(jī)交互,這無疑為開發(fā)者和普通用戶帶來了全新的體驗和可能性。
然而,對于許多初學(xué)者和愛好者來說,如何開始接觸和使用ChatGPT,可能是一個令人望而卻步的問題。從注冊賬號到搭建開發(fā)環(huán)境,再到利用線上平臺如Google Colab進(jìn)行實踐,每一步都充滿了挑戰(zhàn)。本系列博客文章的目的就是揭開ChatGPT的神秘面紗,帶你一步步走進(jìn)這個充滿魔力的AI世界。
在《揭開ChatGPT面紗(一):準(zhǔn)備工作》中,我將從最基礎(chǔ)的步驟開始,包括如何搭建一個適合的開發(fā)環(huán)境,以及如何編寫一個OpenAI的Demo來快速體驗ChatGPT的強(qiáng)大功能。
- 獲取OpenAI的API Key:
在國內(nèi)想要注冊O(shè)penAI是比較困難的,有的網(wǎng)站聲稱可以提供海外虛擬信用卡和海外手機(jī)號,這是不靠譜的,后續(xù)注冊好了也可能會在使用過程中被封號,因此我找了第三方(TB)來獲得API Key??傊?,這個步驟請自行解決。
一、搭建開發(fā)環(huán)境
首先,確保你已經(jīng)在電腦上安裝了conda,以下命令均是使用的conda創(chuàng)建的虛擬環(huán)境。
- 創(chuàng)建虛擬環(huán)境:
conda create -n openaidemo python==3.10
# 激活
conda activate openaidemo
- 安裝所需依賴:
pip install openai==1.6.1
二、編寫并運行demo
我編寫了一個可以和gpt3.5進(jìn)行單詞對話的demo,代碼如下:
1.代碼
from openai import OpenAI
import httpx
import json
# 讀取配置,在上傳gitlab時配置文件ignore了
with open('../config/openai.json') as config_file:
config = json.load(config_file)
# 根據(jù)你自己的情況更改代理地址(如果你開了VPN就不用配這個)和API key
client = OpenAI(
base_url=config['base_url'],
api_key=config['key'],
http_client=httpx.Client(
base_url=config['base_url'],
follow_redirects=True,
),
)
def get_response(input):
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": input}
]
)
message = completion.choices[0].message.content
return message
if __name__ == "__main__":
user_input = input("我:")
generated_text = get_response(user_input)
print(f"AI:{generated_text}")
2.解析
這段代碼使用了openai
庫和httpx
庫,目的是創(chuàng)建一個客戶端來與一個自定義的OpenAI API服務(wù)進(jìn)行交互,并使用該服務(wù)生成文本。下面是逐行解析:
-
from openai import OpenAI
:從openai
庫中導(dǎo)入OpenAI
類。 -
import httpx
:導(dǎo)入httpx
庫,這個庫用于發(fā)送HTTP請求。 -
client = OpenAI(...)
:創(chuàng)建一個OpenAI
類的實例,配置了自定義的API基礎(chǔ)URL和API密鑰。這個實例將用于與OpenAI API服務(wù)進(jìn)行交互。 -
base_url="https://..."
:設(shè)置API的基礎(chǔ)URL,這個URL指向一個第三方服務(wù)(代理)。 -
api_key="sk-..."
:設(shè)置用于認(rèn)證的API密鑰。 -
http_client=httpx.Client(...)
:在創(chuàng)建OpenAI
實例時,傳遞一個httpx.Client
實例作為http_client
參數(shù)。這個httpx.Client
實例也被設(shè)置了相同的基礎(chǔ)URL,并配置為跟隨HTTP重定向。 -
follow_redirects=True
:配置httpx.Client
實例在發(fā)送請求時跟隨HTTP重定向。 -
def get_response(input):
:定義一個函數(shù)get_response
,它接受一個字符串參數(shù)input
,這個字符串將作為輸入提示傳遞給模型。 -
completion = client.chat.completions.create(...)
:調(diào)用client
的chat.completions.create
方法來生成文本。傳遞的參數(shù)包括模型名稱和消息列表。 -
model="gpt-3.5-turbo"
:指定使用的模型是gpt-3.5-turbo
。 -
messages=[...]
:定義一個消息列表,包含兩個字典,分別代表系統(tǒng)消息和用戶輸入。 -
{"role": "system", "content": "You are a helpful assistant."}
:系統(tǒng)消息,告訴模型扮演一個有幫助的助手角色。 -
{"role": "user", "content": input}
:用戶消息,內(nèi)容是函數(shù)參數(shù)input
的值。 -
message = completion.choices[0].message.content
:從生成的完成結(jié)果中獲取第一個選擇的消息內(nèi)容。 -
return message
:返回獲取的消息內(nèi)容。 -
user_input = input("我:")
:如果作為主程序運行,從標(biāo)準(zhǔn)輸入讀取用戶輸入。 -
generated_text = get_response(user_input)
:使用用戶輸入調(diào)用get_response
函數(shù)來生成文本。 -
print(f"AI:{generated_text}")
:打印出由AI生成的文本。
3.執(zhí)行結(jié)果
文章來源:http://www.zghlxwxcb.cn/news/detail-859282.html
至此,demo就成功地運行起來了。文章來源地址http://www.zghlxwxcb.cn/news/detail-859282.html
到了這里,關(guān)于揭開ChatGPT面紗(1):準(zhǔn)備工作(搭建開發(fā)環(huán)境運行OpenAI Demo)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!