「智慧生活科技專業社群」由 Nantou.py 使用者社群與國立虎尾科技大學電機資訊學院共同維護,匯集關注Python、人工智慧、物聯網與智慧生活應用的教師、學生及實務工作者。本社群以「科技融入生活、教學連結場域、知識促進共好」為核心,分享Python程式設計、AI協作學習、AIoT、網際網路與雲端服務、智慧農業、福祉科技、永續發展及USR社會實踐等內容,並將技術導入課堂、社區與真實生活場域。部分文章運用生成式AI協助資料整理、內容架構、程式範例與文字潤飾,文章主題、場域經驗、內容查核及最終修訂則由作者與社群成員負責。我們期待透過人與AI協作,讓科技成為改善生活、連結世代、支持地方與實踐永續的力量。
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頁面多了解細節。








