<span id="3dn8r"></span>
    1. <span id="3dn8r"><optgroup id="3dn8r"></optgroup></span><li id="3dn8r"><meter id="3dn8r"></meter></li>

        從0開始:用 Streamlit + LangChain 搭建個(gè)簡(jiǎn)易ChatGPT

        使用教程3個(gè)月前更新 AI取經(jīng)路
        334 0 0

        流式傳輸允許實(shí)時(shí)接收生成的文本,隨著文本的生成而接收。這樣,您就不必等到整個(gè)文本準(zhǔn)備好后才能開始向用戶展示。我們將使用 LangChain 與LLM進(jìn)行流式交互,并使用 Streamlit 創(chuàng)建應(yīng)用的前端。

        從0開始:用 Streamlit + LangChain 搭建個(gè)簡(jiǎn)易ChatGPT

        原標(biāo)題:從0開始:用 Streamlit + LangChain 搭建個(gè)簡(jiǎn)易ChatGPT
        文章來源:AI取經(jīng)路
        內(nèi)容字?jǐn)?shù):7711字

        構(gòu)建實(shí)時(shí)流式AI應(yīng)用:Streamlit與LangChain的完美結(jié)合

        在人工智能飛速發(fā)展的今天,構(gòu)建一個(gè)流暢、高效的機(jī)器人應(yīng)用已成為許多開發(fā)者的目標(biāo)。本文將詳細(xì)介紹如何利用Streamlit和LangChain這兩個(gè)強(qiáng)大的Python庫,構(gòu)建一個(gè)具有實(shí)時(shí)流式輸出功能的AI應(yīng)用。該應(yīng)用能夠記住歷史,并提供友好的用戶交互體驗(yàn)。

        一、項(xiàng)目概述

        本項(xiàng)目旨在創(chuàng)建一個(gè)基于OpenAI大型語言模型(LLM)的機(jī)器人應(yīng)用。其核心功能包括:實(shí)時(shí)流式輸出AI回復(fù),利用LangChain簡(jiǎn)化與LLM的交互,使用Streamlit快速構(gòu)建用戶界面,以及記住并顯示歷史記錄。

        二、核心技術(shù)詳解

        2.1 Streamlit:簡(jiǎn)化Web應(yīng)用開發(fā)

        Streamlit是一個(gè)Python庫,它讓開發(fā)者能夠用極少的代碼快速構(gòu)建交互式Web應(yīng)用。無需編寫HTML、CSS或JavaScript,只需專注于應(yīng)用的邏輯即可。Streamlit自動(dòng)刷新界面,支持各種交互組件,并能輕松集成數(shù)據(jù)可視化庫,非常適合AI項(xiàng)目。

        2.2 LangChain:構(gòu)建強(qiáng)大的語言處理系統(tǒng)

        LangChain是一個(gè)強(qiáng)大的框架,它允許開發(fā)者以模塊化的方式構(gòu)建復(fù)雜的語言處理系統(tǒng)。它提供了一系列預(yù)構(gòu)建的組件,例如模型、提示模板、向量數(shù)據(jù)庫等,開發(fā)者可以將這些組件組合起來,快速構(gòu)建各種AI應(yīng)用。LangChain簡(jiǎn)化了與LLM的交互,并提供了許多高級(jí)功能,例如記憶管理和代理。

        2.3 流式輸出:提升用戶體驗(yàn)

        傳統(tǒng)的AI應(yīng)用通常需要等待模型生成完整的回復(fù)后再顯示。流式輸出則不同,它允許模型邊生成邊顯示文本,就像人類打字一樣,極大地提升了用戶體驗(yàn),減少了等待時(shí)間,讓交互更自然流暢。

        三、代碼實(shí)現(xiàn)

        以下代碼展示了如何一步步構(gòu)建我們的流式AI應(yīng)用。請(qǐng)確保已安裝必要的庫:pip install streamlit langchain langchain-openai

        3.1 導(dǎo)入庫和初始化模型

        首先,導(dǎo)入必要的庫并初始化OpenAI的模型:

        import os
        import streamlit as st
        from langchain_openai.chat_models import ChatOpenAI
        
        # 設(shè)置OpenAI API密鑰 (請(qǐng)?zhí)鎿Q為你的API密鑰)
        OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY'
        os.environ['OPENAI_API_KEY'] = OPENAI_API_KEY
        
        # 初始化ChatOpenAI模型
        llm = ChatOpenAI(model="gpt-3.5-turbo",temperature=0) 
        
        3.2 創(chuàng)建Streamlit UI

        使用Streamlit創(chuàng)建簡(jiǎn)單的用戶界面:

        st.title("實(shí)時(shí)流式AI")
        st.write("輸入你的問題,AI將實(shí)時(shí)回答!")
        
        3.3 流式輸出函數(shù)

        定義流式輸出函數(shù),使用yield逐步返回模型生成的文本:

        def chat_stream(prompt):
            for chunk in llm.stream(prompt):
                if chunk.content:
                    yield chunk.content
        
        3.4 管理歷史和顯示記錄

        使用Streamlit的session state管理歷史,并顯示歷史記錄:

        if "history" not in st.session_state:
            st.session_state.history = []
        
        for message in st.session_state.history:
            with st.chat_message(message["role"]):
                st.write(message["content"])
        
        
        3.5 獲取用戶輸入和生成AI回復(fù)

        獲取用戶輸入,并使用流式輸出顯示AI回復(fù):

        if prompt := st.chat_input("請(qǐng)輸入你的問題"):
            with st.chat_message("user"):
                st.write(prompt)
            st.session_state.history.append({"role": "user","content": prompt})
        
            with st.chat_message("assistant"):
                full_response = ""
                for chunk in st.write_stream(chat_stream(prompt)):
                    full_response += chunk
            st.session_state.history.append({"role": "assistant","content": full_response})
        

        四、運(yùn)行項(xiàng)目

        保存代碼為app.py,然后運(yùn)行streamlit run app.py即可啟動(dòng)應(yīng)用。

        五、總結(jié)

        本文提供了一個(gè)構(gòu)建實(shí)時(shí)流式AI應(yīng)用的完整教程。通過結(jié)合Streamlit和LangChain,我們可以快速構(gòu)建一個(gè)功能強(qiáng)大且用戶友好的AI應(yīng)用。希望本文能夠幫助開發(fā)者快速入門,并進(jìn)一步探索AI應(yīng)用開發(fā)的無限可能。


        聯(lián)系作者

        文章來源:AI取經(jīng)路
        作者微信:
        作者簡(jiǎn)介:踏上取經(jīng)路,比抵達(dá)靈山更重要! AI技術(shù)、 AI知識(shí) 、 AI應(yīng)用 、 人工智能 、 大語言模型

        閱讀原文
        ? 版權(quán)聲明
        Trae官網(wǎng)

        相關(guān)文章

        Trae官網(wǎng)

        暫無評(píng)論

        暫無評(píng)論...
        主站蜘蛛池模板: 国产亚洲视频在线观看网址| 国产成人亚洲综合无码精品| 亚洲色欲www综合网| 亚洲日韩小电影在线观看| 亚洲国产中文字幕在线观看| 免费在线观看一级毛片| 国产成人免费a在线资源| 免费无码A片一区二三区| 亚洲精品无码成人片久久不卡 | 四虎永久在线免费观看| 日本一区二区三区免费高清| 91高清免费国产自产| 久久一区二区三区免费播放| www成人免费观看网站| 久久久久久a亚洲欧洲AV| 亚洲中文字幕无码爆乳av中文| 日韩免费电影网址| 99久久婷婷免费国产综合精品| 亚洲二区在线视频| 亚洲国产午夜精品理论片| 亚洲欧洲精品一区二区三区| 91亚洲一区二区在线观看不卡| 亚洲国产精品一区二区久久| 亚洲AV成人一区二区三区AV| 久久久亚洲欧洲日产国码aⅴ| 亚洲国产精品成人精品无码区在线| 亚洲香蕉网久久综合影视| 亚洲国产一成人久久精品| 亚洲av无码精品网站| 久久久久亚洲AV片无码| 久久丫精品国产亚洲av不卡| 亚洲av无码一区二区乱子伦as| 亚洲AV无码AV男人的天堂| 2022年亚洲午夜一区二区福利 | 在线视频网址免费播放| 在线观看黄片免费入口不卡| a在线观看免费视频| 亚在线观看免费视频入口| 99在线视频免费| 精品多毛少妇人妻AV免费久久| 亚洲一区二区三区免费|