本社群由Nantou.py使用者社群以及國立虎尾科技大學電機資訊學院負責維護,它是一群熱愛智慧生活科技以及Python的專業教師所組成,大家一同快樂地研究有關數位生活中人工智慧、大數據、物聯網、雲端服務、APPS、福祉科技、感知網路服務、車載網路服務、及網際網路等資通訊技術,並運用這些資通訊以及Python技術來提升我們的日常生活品質,建立更好的生活環境。
2023年2月28日 星期二
RC電路暫態分析
2023年2月23日 星期四
簡單介紹使用python串接OpenAI進行聊天對話/ 互動
最近很夯的ChatGPT是由OpenAI所提供的聊天機器人,
這邊簡單的介紹怎麼透過python來呼叫OpenAI
首先需要到OpenAI API進行註冊(SIGN UP) 然後再去個人資訊頁面產生API Key。
拿到API Key之後就可以透過python來進行串接了。不過因為這類的AI知識庫都是分類進行訓練的,所以想要拿到不同領域的回覆需要對不同的model做引用,因此想要呼叫OpenAI的哪一種model可以到這個範例頁面來做查詢,找到想要使用的情境後就可以點進去,就會有參考範例做使用。像是以基本的Q&A來進行測試,會使用到的程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | from para import OPENAI_API_KEY import openai openai.api_key = OPENAI_API_KEY def openai_response(chat_message): response = openai.Completion.create( model="text-davinci-003", prompt=chat_message, temperature=0, max_tokens=2048, top_p=1, frequency_penalty=0.0, presence_penalty=0.0, stop=None ) return response["choices"][0]["text"].strip() print(openai_response("我想要在台北種百香果,請問是否適合,並且告訴我種百香果的完整流程")) |
OpenAI回的內容可能會像這樣子
或是如果想要透過OpenAI來幫你找圖片的話,可以使用到的程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from para import OPENAI_API_KEY import openai openai.api_key = OPENAI_API_KEY def openai_img(message: str): response = openai.Image.create( prompt=message, n=1, size='512x512' ) return response['data'][0]['url'] print(openai_img("The farmers are planting rice in the field.")) |
透過OpenAI找圖的回傳資料是網路上的圖片連結。另外,OpenAI找圖的參數,需要使用英文來查詢會比較正確,如果使用者輸入的是中文,可以利用前一個範例的OpenAI對話來幫你翻成英文再用這個範例來找圖會比較好。
也可以把這樣子的互動串接到Line Bot裡面,之前這邊的網誌有介紹怎麼架設自己的Line Bot,就可以直接透過Line來做到聊天互動的功能了。不過Heroku現在已經沒有提供免費的平台了,若想要找免費的python website的話,可以使用另一個服務台 - Pythonanywhere。
下面的擷圖是串接到我的Line Bot,先透過簡單的互動導到後端不同的服務,像是先說"oai"表示我想要找OpenAI做聊天/互動,說"找圖"就可以輸入想要找尋的圖檔資訊。
因為OpenAI在回應資料是即時"產生"出來的,所以給OpenAI相同的問題,回應的結果可能會不同。 在前面給的範例裡面也有不少參數可以調整,有興趣的人可以再去API頁面多了解細節。