博客專欄

        EEPW首頁 > 博客 > 使用Streamlit和OpenAI搭建一個ChatGPT聊天機器人(附代碼)

        使用Streamlit和OpenAI搭建一個ChatGPT聊天機器人(附代碼)

        發布人:大數據文摘 時間:2023-02-18 來源:工程師 發布文章

        大數據文摘授權轉載自法納斯特

        作者:小F


        ChatGPT是OpenAI開發的一個大型預訓練語言模型。它是GPT-3模型的變體,GPT-3經過訓練,可以在對話中生成類似人類的文本響應。


        ChatGPT旨在用作聊天機器人,我們可以對其進行微調,以完成各種任務,如回答問題、提供信息或參與對話。


        與許多使用預定義的響應或規則生成文本的聊天機器人不同,ChatGPT經過了訓練,可以根據接收到的輸入生成響應,從而生成更自然、更多樣化的響應。


        圖片


        小F也是去注冊并且試用了一下,確實很酷!


        圖片

        圖片


        ChatGPT可以聯系上下文,然后給出回答。


        Streamlit則是一個搭建網頁的Python庫,只需幾行代碼就可以創建一個交互式、可視化的儀表板。


        簡單直觀,無需相關的Web開發經驗,即可輕松創建功能強大的Web頁面。


        本期,小F就通過這兩來搭建一個聊天機器人~


        注冊OpenAI


        首先需要注冊OpenAI,這樣就可以使用ChatGPT,以及獲取api密鑰。


        圖片


        網上有很多注冊教程,附上鏈接,小F就不細說了。


        如果有問題可以來咨詢小F,我都已經實驗過啦~


        注冊教程:

        https://sms-activate.org/cn/info/ChatGPT


        接入微信


        一并附上微信聊天機器人教程,需要安裝golang和docker環境,然后進行部署。


        圖片


        先使用Dockerfile創建一個鏡像,在Dockerfile所在目錄終端下運行如下命令。


        其中鏡像名稱是可以自定義修改的。

        docker build -t xiaomoinfo/wechatgpt:latest .

        Dockerfile內容如下。

        FROM golang:1.19-alpineENV api_key=""RUN export GOPRIVATE=github.com/houko/wechatgptWORKDIR /appCOPY . /appRUN go mod download && go build -o server main.goCMD ./server

        Docker啟動容器,可以設置關鍵字,比如「小F」這個詞。


        圖片


        經過使用,發現通過接口獲取的回答和網頁上不一樣。


        微信教程:

        https://github.com/houko/wechatgpt


        微信教程介紹完了,就來看看聊天機器人吧~


        聊天機器人


        安裝兩個要用到的Python庫。


        # 安裝streamlit和openaipip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlitpip install -i https://pypi.tuna.tsinghua.edu.cn/simple openai

        其中openai庫在文檔上有一個簡單的說明。


        圖片


        文檔地址:

        https://platform.openai.com/docs


        引入Python庫,通過Streamlit設置頁面信息。


        import streamlit as stimport openai

        # 設置標題, 功能介紹st.title("和ChatGPT聊天")st.sidebar.header("功能介紹")st.sidebar.info(    '''這是一個web應用程序,通過OpenAI的API和ChatGPT模型實現交互(聊天)功能。在文本框中輸入問題,然后按Enter鍵查詢,接收ChatGPT的回答''')


        查看文檔后得知,text-davinci-003是我們所能用到最好的模型了。


        圖片


        密匙信息在個人設置中獲取,首次需要自己創建。


        圖片


        添加我們選擇的模型以及密匙信息。

        # 設置模型和密匙model_engine = "text-davinci-003"openai.api_key = "你的密匙"

        通過翻閱個人設置項信息,發現接口調用也是有限制的。


        圖片

        圖片


        一共18刀的免費額度,小F已經使用了快1美刀了,還剩不少~


        使用OpenAI API生成回答,相關參數可以自行看文檔。


        def ChatGPT(user_query):    """    使用OpenAI API生成回答, 選擇模型, 設置參數    """    # 使用OpenAI API生成回答    completion = openai.Completion.create(        engine=model_engine,        prompt=user_query,        max_tokens=1024,        n=1,        temperature=0.5,    )    response = completion.choices[0].text    return response

        主函數,問題輸入和回答輸出顯示。

















        def main():    """    獲取用戶輸入, 提交給ChatGPT, 打印輸出    """    # 獲取問題信息    user_query = st.text_input("在這里輸入問題,回車查詢", "Python是什么?")    if user_query != ":q" or user_query != "":        # 將問題提交給ChatGPT, 返回結果        response = ChatGPT(user_query)        return st.write(f"{response}")



        # 主函數main()

        最后就可以在終端運行下面的代碼了。

        streamlit run example.py

        結果如下。


        圖片


        點擊本地地址,瀏覽器就會跳轉到新的頁面。


        剛開始應該是這樣的,右上角處于RUNNING狀態,表示正在查詢。


        圖片


        過一小會就會有結果返回。


        圖片


        問一下「如何制作一個聊天機器人」。


        圖片


        發現ChatGPT真的很會做拆解,真的不錯。


        最后,從頁面上看,有點不像一個聊天機器人,感覺就是一問一答而已。


        其實只是沒把問題一個一個顯示而已,機器人實際還是可以聯系上下文的。


        只不過確實沒有網頁版的ChatGPT好使,看看后續會不會更新咯。


        此外本期也只是調用API接口而已,至于如何真正的建立聊天機器人,就涉及到數據算法模型訓練了,大家感興趣可以自行去學習~



        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大方县| 会东县| 大城县| 禹州市| 铜川市| 灌南县| 普安县| 长白| 安庆市| 苍溪县| 汉阴县| 甘南县| 会昌县| 城口县| 华宁县| 新竹市| 镇宁| 延川县| 资中县| 苍山县| 永城市| 普兰店市| 铁岭县| 鄂托克前旗| 钦州市| 应城市| 新巴尔虎右旗| 都安| 双峰县| 石楼县| 河源市| 沁水县| 深水埗区| 徐闻县| 大厂| 龙游县| 牟定县| 乐东| 康平县| 霍邱县| 古丈县|