Python+ChatGPT製作一個AI實用百寶箱

来源:https://www.cnblogs.com/liuliumei/archive/2023/03/14/17215065.html
-Advertisement-
Play Games

ChatGPT 最近在互聯網掀起了一陣熱潮,其高度智能化的功能能夠給我們現實生活帶來諸多的便利,可以幫助你寫文章、寫報告、寫周報、做表格、做策劃甚至還會寫代碼。只要與文字相關的工作,它幾乎都能給出一份滿意的答卷。 一、註冊OpenAI 首先需要註冊OpenAI,這樣就可以使用ChatGPT 二、搭建 ...


ChatGPT 最近在互聯網掀起了一陣熱潮,其高度智能化的功能能夠給我們現實生活帶來諸多的便利,可以幫助你寫文章、寫報告、寫周報、做表格、做策劃甚至還會寫代碼。只要與文字相關的工作,它幾乎都能給出一份滿意的答卷。

 

一、註冊OpenAI

首先需要註冊OpenAI,這樣就可以使用ChatGPT

 

 

 

二、搭建網站及其框架

那麼這裡我們需要用到這幾個庫,用pip命令來下載

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

那麼首先網頁的左側有一個工具欄,其中羅列了一系列的功能,我們這裡簡單的囊括了幾個,包括了“簡介”、“AI聊天”、“AI繪畫”,大家感興趣的後期可以繼續往裡面添加,例如“AI配音”,代碼如下

with st.sidebar:
    choose = option_menu("工具欄", ["簡介","AI聊天", "AI繪畫"],
                         icons=['house', 'person lines fill', 'app-indicator'],
                         menu_icon="list", default_index=0,
                         styles={
                             "container": {"padding": "5!important", "background-color": "#fafafa"},
                             "icon": {"color": "orange", "font-size": "25px"},
                             "nav-link": {"font-size": "16px", "text-align": "left", "margin": "0px",
                                          "--hover-color": "#eee"},
                             "nav-link-selected": {"background-color": "#24A608"},
                         }
                         )

 

那麼在“簡介”這一欄當中,顧名思義就是對該網頁簡單的介紹,我們簡單的寫一些介紹,代碼如下

 

 
if choose == "簡介":
    col1, col2 = st.columns([0.8, 0.2])
    with col1:  # To display the header text using css style
        st.markdown(""" <style> .font {
            font-size:35px ; font-family: 'Cooper Black'; color: #FF9633;} 
            </style> """, unsafe_allow_html=True)
        st.markdown('<p class="font">About the Creator</p>', unsafe_allow_html=True)
    with col2:  # To display brand log
        logo = Image.open("wechat_logo.jpg")
        st.image(logo, width=130)
      
    st.markdown('**AI百寶箱,裡面集成了各種工具,歡迎使用**')

  

展示出來的效果如下

 

 

三、AI聊天機器人

那麼首先我們需要在個人設置裡面去獲取一個秘鑰,

 

然後選擇一個模型,這裡我們選擇text-davinci-003模型,相比其他而言,性能更好,然後我們調用OpenAI裡面的方法來生成回答

def ChatGPT(user_query):
    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

然後我們調用該函數結合streamlit當中的輸入框,代碼如下

elif choose == "AI聊天":
    st.title("AI聊天機器人")
    # 設置密匙
    model_engine = "text-davinci-003"

    def ChatGPT(user_query):
        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

    user_query = st.text_input("在這裡輸入問題,回車查詢", "Python是什麼?")
    if user_query != ":q" or user_query != "":
        # 將問題提交給ChatGPT, 返回結果
        response = ChatGPT(user_query)
        st.write(f"{response}")

四、AI繪畫機器人

 

而在“AI繪畫”的模塊中,代碼邏輯也是相類似的,這邊需要調用與繪畫相關的API,代碼如下

def image_generate(user_demand):
    completion = openai.Image.create(
        prompt=user_demand,
        n=2,
        size="1024x1024"
    )
    response = completion.get("data")
    return response[0].get("url")

 

最後就可以在終端運行下麵的代碼了,

streamlit run example.py

我們在瀏覽器中打開頁面,例如我們點擊進入“AI聊天”這個模塊,我們可以看到右上角處於RUNNING的狀態,表示正在運行中,等會兒之後就能看到結果

 

 

 

而點擊進入“AI繪畫”這個模塊,例如想要繪製可愛的貓咪,我們也能看到如下的結果

 

 

 

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 版權聲明:原創不易,本文禁止抄襲、轉載,侵權必究! 一、去吧!皮卡丘! 使用turtle(海龜庫)製作而成,感覺挺好玩的,哈哈@>_<@,效果如下: 由於源碼過長,這裡僅展示部分代碼: from turtle import * import turtle as t from random impor ...
  • 在做項目的時候,安裝MybatisX插件可以讓我們不用寫實體類,加快我們的開發速度,讓我們更專註於業務邏輯的開發,可是最近在做項目的時候,發現MybatisX插件的MybatisX-Generator無法生成實體類,但是其它的文件都可以自動生成。 原因:idea的版本(本人電腦idea版本是2021 ...
  • 引言 大家好,我是蠟筆小曦。 我們在通過程式向某個網頁發起請求時,實際上是模擬瀏覽器進行http(超文本傳輸協議)請求,這就要求我們需要按照固定的格式進行代碼構造。 一般請求數據分為三部分:請求行、請求頭、請求體,如果每次都手動進行這些內容的構造,無疑會花費大量的時間,準確性也難以保證。 現在就給大 ...
  • python語言基礎 1.1 python語法特點 1.1.1 註釋規則 什麼是註釋? 所謂註釋,就是在代碼中添加標註性的文字,進而更好的幫助我們更好的閱讀代碼,註釋又分為單行註釋和多行註釋。 1. 單行註釋 1 單行註釋用: # 來註釋 2 例: 3 print("hello word! ") # ...
  • 一、進位數的表示 十進位——直接表示:10二進位——(首碼):0B1010八進位——(首碼):0O12十六進位——(首碼):0XA 二、進位轉換 (1)十進位轉其他 十進位轉二進位: bin(10)十進位轉八進位: oct(10)十進位轉十六進位:hex(10) 備註:註意以上輸出類型均為字元串,另 ...
  • 飢漢模式 package com.cz.single; /** * @author 卓亦葦 * @version 1.0 * 2023/3/11 21:31 */ public class Hungry { private byte[] data1 = new byte[1024]; private ...
  • 事務基礎 事務 事務 是一組操作的集合,它是一個不可分割的工作單位,事務會把所有的操作作為一個整體一起向系統提交或撤銷操作請求,即這些操作要麼同時成功,要麼同時失敗。 特性 原子性(Atomicity):事務是不可分割的最小操作單元,要麼全部成功,要麼全部失敗。 一致性(Consistency):事 ...
  • mybatis 使用資料庫連接池初始化連接資源 將sql語句抽取到xml配置文件中 使用反射、內省等底層技術,自動將實體與表進行屬性與欄位的自動映射 介紹 mybatis 是一個優秀的基於java的持久層框架,它內部封裝了jdbc,使開發者只需要關註sql語句本身,而不需要花費精力去處理載入驅動、創 ...
一周排行
    -Advertisement-
    Play Games
  • 下麵是一個標準的IDistributedCache用例: public class SomeService(IDistributedCache cache) { public async Task<SomeInformation> GetSomeInformationAsync (string na ...
  • 這個庫提供了在啟動期間實例化已註冊的單例,而不是在首次使用它時實例化。 單例通常在首次使用時創建,這可能會導致響應傳入請求的延遲高於平時。在註冊時創建實例有助於防止第一次Request請求的SLA 以往我們要在註冊的時候實例單例可能會這樣寫: //註冊: services.AddSingleton< ...
  • 最近公司的很多項目都要改單點登錄了,不過大部分都還沒敲定,目前立刻要做的就只有一個比較老的項目 先改一個試試手,主要目標就是最短最快實現功能 首先因為要保留原登錄方式,所以頁面上的改動就是在原來登錄頁面下加一個SSO登錄入口 用超鏈接寫的入口,頁面改造後如下圖: 其中超鏈接的 href="Staff ...
  • Like運算符很好用,特別是它所提供的其中*、?這兩種通配符,在Windows文件系統和各類項目中運用非常廣泛。 但Like運算符僅在VB中支持,在C#中,如何實現呢? 以下是關於LikeString的四種實現方式,其中第四種為Regex正則表達式實現,且在.NET Standard 2.0及以上平... ...
  • 一:背景 1. 講故事 前些天有位朋友找到我,說他們的程式記憶體會偶發性暴漲,自己分析了下是非托管記憶體問題,讓我幫忙看下怎麼回事?哈哈,看到這個dump我還是非常有興趣的,居然還有這種游戲幣自助機類型的程式,下次去大玩家看看他們出幣的機器後端是不是C#寫的?由於dump是linux上的程式,剛好win ...
  • 前言 大家好,我是老馬。很高興遇到你。 我們為 java 開發者實現了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何處理的,可以參考我的另一個項目: 手寫從零實現簡易版 tomcat minicat 手寫 ngin ...
  • 上一次的介紹,主要圍繞如何統一去捕獲異常,以及為每一種異常添加自己的Mapper實現,並且我們知道,當在ExceptionMapper中返回非200的Response,不支持application/json的響應類型,而是寫死的text/plain類型。 Filter為二方包異常手動捕獲 參考:ht ...
  • 大家好,我是R哥。 今天分享一個爽飛了的面試輔導 case: 這個杭州兄弟空窗期 1 個月+,面試了 6 家公司 0 Offer,不知道問題出在哪,難道是杭州的 IT 崩盤了麽? 報名面試輔導後,經過一個多月的輔導打磨,現在成功入職某上市公司,漲薪 30%+,955 工作制,不咋加班,還不捲。 其他 ...
  • 引入依賴 <!--Freemarker wls--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version> </dependency> ...
  • 你應如何運行程式 互動式命令模式 開始一個互動式會話 一般是在操作系統命令行下輸入python,且不帶任何參數 系統路徑 如果沒有設置系統的PATH環境變數來包括Python的安裝路徑,可能需要機器上Python可執行文件的完整路徑來代替python 運行的位置:代碼位置 不要輸入的內容:提示符和註 ...