国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Streamlit創(chuàng)建AutoGen用戶界面

這篇具有很好參考價值的文章主要介紹了使用Streamlit創(chuàng)建AutoGen用戶界面。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

AutoGen作為一個最大化LLM(如GPT-4)能力的框架而脫穎而出。由微軟研究院開發(fā)的AutoGen通過提供一種自動化、優(yōu)化和編排工作流的方法,簡化了復雜的、基于多代理llm的應用程序的創(chuàng)建。我們在以前的文章中也有過介紹,你可以與許多GPT交談,并且GPT和GPT之間也可以互相交談。每個GPT都是它自己的“代理”,并在總體業(yè)務流程中扮演特殊角色。但是AutoGen是用命令行模式進行交互的,這對我們的輸入來說非常不方便,所以這次我們來對其進行改造,使用Streamlit創(chuàng)建一個web界面,這樣可以讓我們更好的與其交互。

這個項目略微粗糙,但它應該為為AutoGen代理創(chuàng)建簡單的ui提供了一個很好的起點。

這里需要注意的是:

明確要求不要運行代碼或?qū)⑽募鎯υ诒镜?,因為這是Streamlit限制—而不是AutoGen限制。

簡單介紹AutoGen

我們之前已經(jīng)介紹過AutoGen,所以這里再做個簡單的回顧:

AutoGen自動化了LLM工作流,這在開發(fā)人員制作越來越復雜的基于LLM的應用程序時至關重要。

它提供了可定制的代理,這些代理不僅可以與用戶進行自動對話,還可以在代理之間進行自動對話。

AutoGen代理可以合并llm、人工輸入和其他工具的組合,克服每個組件單獨的局限性。無論是代碼生成、執(zhí)行、調(diào)試還是復雜任務解決,AutoGen代理都可以處理各種高級操作。

創(chuàng)建Streamlit應用

我們的目標是這樣的:

使用streamlit創(chuàng)建autogen用戶界面,人工智能,機器學習,Streamlit,深度學習

我們先安裝如下包:

 aiohttp==3.8.6
 aiosignal==1.3.1
 altair==5.1.2
 async-timeout==4.0.3
 attrs==23.1.0
 blinker==1.6.3
 cachetools==5.3.2
 certifi==2023.7.22
 charset-normalizer==3.3.1
 click==8.1.7
 diskcache==5.6.3
 docker==6.1.3
 FLAML==2.1.1
 frozenlist==1.4.0
 gitdb==4.0.11
 GitPython==3.1.40
 idna==3.4
 importlib-metadata==6.8.0
 Jinja2==3.1.2
 jsonschema==4.19.1
 jsonschema-specifications==2023.7.1
 markdown-it-py==3.0.0
 MarkupSafe==2.1.3
 mdurl==0.1.2
 multidict==6.0.4
 numpy==1.26.1
 openai==0.28.1
 packaging==23.2
 pandas==2.1.2
 Pillow==10.1.0
 protobuf==4.24.4
 pyarrow==13.0.0
 pyautogen==0.1.13
 pydeck==0.8.1b0
 Pygments==2.16.1
 python-dateutil==2.8.2
 python-dotenv==1.0.0
 pytz==2023.3.post1
 referencing==0.30.2
 requests==2.31.0
 rich==13.6.0
 rpds-py==0.10.6
 six==1.16.0
 smmap==5.0.1
 streamlit==1.28.0
 tenacity==8.2.3
 termcolor==2.3.0
 toml==0.10.2
 toolz==0.12.0
 tornado==6.3.3
 tqdm==4.66.1
 typing_extensions==4.8.0
 tzdata==2023.3
 tzlocal==5.2
 urllib3==2.0.7
 validators==0.22.0
 websocket-client==1.6.4
 yarl==1.9.2
 zipp==3.17.0

然后創(chuàng)建

app.py

首先是導入包:

 import streamlit as st
 import asyncio
 from autogen import AssistantAgent, UserProxyAgent

streamlit用于創(chuàng)建UI。Asyncio對于異步控制流是必需的,它允許聊天響應。Autogen為聊天代理提供了類。

然后使用Streamlit的write函數(shù)設置應用的標題:

 st.write("# AutoGen Chat Agents")

這一行將在UI的頂部顯示標題“AutoGen Chat Agents”。

然后就是創(chuàng)建自定義代理類,需要擴展AutoGen的AssistantAgent和UserProxyAgent:

 class TrackableAssistantAgent(AssistantAgent):
     def _process_received_message(self, message, sender, silent):
         with st.chat_message(sender.name):
             st.markdown(message)
         return super()._process_received_message(message, sender, silent)
 
 class TrackableUserProxyAgent(UserProxyAgent):
     def _process_received_message(self, message, sender, silent):
         with st.chat_message(sender.name):
             st.markdown(message)
         return super()._process_received_message(message, sender, silent)

這些類覆蓋一個_process_received_message方法,在Streamlit聊天小部件中顯示接收到的消息,為用戶提供實時更新。

然后就是使用Streamlit的側(cè)邊欄功能進行配置:

 selected_model = None
 selected_key = None
 
 with st.sidebar:
     st.header("OpenAI Configuration")
     selected_model = st.selectbox("Model", ['gpt-3.5-turbo', 'gpt-4'], index=1)
     selected_key = st.text_input("API Key", type="password")

這里可以使用我們上次文章的本地 LLM 方案,這樣就不用使用openai的付費API了

AutoGen完整教程和加載本地LLM示例

然后就是創(chuàng)建主聊天界面并處理輸入:

 with st.container():
     # for message in st.session_state["messages"]:
     #    st.markdown(message)
 
     user_input = st.chat_input("Type something...")
     if user_input:
         if not selected_key or not selected_model:
             st.warning(
                 'You must provide valid OpenAI API key and choose preferred model', icon="??")
             st.stop()
 
         llm_config = {
             "request_timeout": 600,
             "config_list": [
                 {
                     "model": selected_model,
                     "api_key": selected_key
                 }
             ]
         }

上面代碼創(chuàng)建一個聊天輸入字段,如果用戶沒有完成配置,將顯示一個警告。

自定義我們的代理,并為異步聊天設置事件循環(huán):

 # create an AssistantAgent instance named "assistant"
 assistant = TrackableAssistantAgent(
 name="assistant", llm_config=llm_config)
 
 # create a UserProxyAgent instance named "user"
 user_proxy = TrackableUserProxyAgent(
 name="user", human_input_mode="NEVER", llm_config=llm_config)
 
 # Create an event loop
 loop = asyncio.new_event_loop()
 asyncio.set_event_loop(loop)

代理的配置需要根據(jù)我們的需求自行定義,我們這里只給一個演示。除此以外還要使用asyncio為應用程序處理異步操作做好準備。

最后定義并運行異步函數(shù)來啟動聊天:

 async def initiate_chat():
 await user_proxy.a_initiate_chat(
 assistant,
 message=user_input,
 )
 
 # Run the asynchronous function within the event loop
 loop.run_until_complete(initiate_chat())

當發(fā)送消息時,就可以在用戶代理和助理代理之間發(fā)起聊天,結(jié)果如下:

使用streamlit創(chuàng)建autogen用戶界面,人工智能,機器學習,Streamlit,深度學習

總結(jié)

將AutoGen代理集成到Streamlit應用程序中,為創(chuàng)建由大型語言模型驅(qū)動的交互式智能ui提供了無數(shù)可能性。通過我們的以上代碼可以建立一個響應式聊天界面,利用AutoGen的高級功能。AutoGen和Streamlit的結(jié)合為實現(xiàn)我們的需求提供了一個強大且對開發(fā)人員友好的途徑。

本文完整代碼:

https://avoid.overfit.cn/post/5b403f65a3084a9faf966b8bba0de2c7

作者:Dr. Ernesto Lee文章來源地址http://www.zghlxwxcb.cn/news/detail-766087.html

到了這里,關于使用Streamlit創(chuàng)建AutoGen用戶界面的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python的界面神器Streamlit初使用,一個漂亮的界面有多簡單,超乎想象

    Python的界面神器Streamlit初使用,一個漂亮的界面有多簡單,超乎想象

    廢話不多說,直接上干貨 首先安裝好所需要的庫 新建一個 Python 文件(test.py),導入所需要的庫, 打開命令,行輸入命令, 啟動服務,可以看到輸出信息證明已經(jīng)成功啟動了一個服務,瀏覽器會自動打開這個地址。 現(xiàn)在頁面什么東西都沒有,加一句代碼,打印一些文字 保存文

    2024年02月08日
    瀏覽(25)
  • Matlab GUI界面美化:創(chuàng)建令人愉悅的用戶界面

    Matlab GUI界面美化:創(chuàng)建令人愉悅的用戶界面 在Matlab中,創(chuàng)建一個美觀且易于使用的圖形用戶界面(GUI)對于增強用戶體驗至關重要。通過使用適當?shù)念伾?、布局和交互元素,可以使GUI更加吸引人,并且更易于導航和操作。本文將介紹一些簡單而有效的方法,幫助您美化Matl

    2024年02月03日
    瀏覽(27)
  • Android布局和控件:創(chuàng)建用戶界面的XML布局文件和常用UI控件詳解

    在Android應用開發(fā)中,創(chuàng)建用戶界面是一個重要的任務。通過使用XML布局文件和常用的UI控件,開發(fā)人員可以設計和構(gòu)建出吸引人且功能豐富的應用界面。本文將詳細介紹如何使用XML布局文件來創(chuàng)建Android應用的用戶界面,并深入探討一些常用UI控件的屬性和用法。 XML布局文件是

    2024年02月17日
    瀏覽(30)
  • 界面開發(fā)(2)--- 使用PyQt5制作用戶登陸界面

    界面開發(fā)(2)--- 使用PyQt5制作用戶登陸界面

    上篇文章已經(jīng)介紹了如何配置PyQt5環(huán)境,這篇文章在此基礎上展開,主要記錄一下如何使用 PyQt5 制作用戶登陸界面,并對一些基礎操作進行介紹。 下面是具體步驟,一起來看看吧! 1. 打開 Pycharm 中的 Qt Designer 工具。 2. 選擇Main Window模式,創(chuàng)建界面窗口。 3. 移除菜單欄和狀態(tài)

    2024年02月05日
    瀏覽(22)
  • 如何使用Java實現(xiàn)圖形用戶界面(GUI)?

    隨著計算機技術(shù)的不斷發(fā)展,圖形用戶界面(GUI)成為現(xiàn)代軟件開發(fā)的一個重要方面。通過使用GUI,開發(fā)人員可以創(chuàng)建具有可視化界面的應用程序,以提供更好的用戶體驗。在本文中,我們將介紹如何使用Java實現(xiàn)GUI。 Java提供了多個GUI庫,包括Swing、JavaFX和AWT。其中,Swing和

    2024年02月04日
    瀏覽(28)
  • 使用 electronjs 實現(xiàn) ibus 輸入法的用戶界面

    使用 electronjs 實現(xiàn) ibus 輸入法的用戶界面

    ibus 輸入法框架自帶一套用戶界面, 比如 (ibus-libpinyin): 但是從靈活程度和可擴展的角度考慮, 最好還是另外想辦法實現(xiàn)用戶界面, 而不是用 ibus 自帶的這個. 在桌面 (PC) 平臺制作圖形用戶界面, 有很多很多種具體的技術(shù)可供選擇. 但是窩覺得, 其中最簡單的方式就是使用 electronj

    2024年02月22日
    瀏覽(17)
  • 探索Streamlit中強大而靈活的 st.write() 函數(shù)(五):構(gòu)建豐富多樣的應用界面

    探索Streamlit中強大而靈活的 st.write() 函數(shù)(五):構(gòu)建豐富多樣的應用界面

    在這篇博文中,我們將著重介紹Streamlit中一個核心而重要的函數(shù),那就是st.write()。在之前的三篇文章(《Streamlit 講解專欄(一):安裝以及初步應用》、《Streamlit 講解專欄(二):搭建第一個應用》和《 Streamlit 講解專欄(三):兩種方案構(gòu)建多頁面》)中,我們已經(jīng)對S

    2024年02月14日
    瀏覽(19)
  • 如何使用 templ 在 Go 中編寫 HTML 用戶界面?

    如何使用 templ 在 Go 中編寫 HTML 用戶界面?

    關注公眾號【愛發(fā)白日夢的后端】分享技術(shù)干貨、讀書筆記、開源項目、實戰(zhàn)經(jīng)驗、高效開發(fā)工具等,您的關注將是我的更新動力! templ 是一個在 Go 中編寫 HTML 用戶界面的語言。使用 templ,我們可以創(chuàng)建可呈現(xiàn) HTML 片段的組件,并將它們組合起來創(chuàng)建屏幕、頁面、文檔或應

    2024年02月04日
    瀏覽(17)
  • 3.RabbitMQ UI管理界面使用(用戶、虛擬主機)

    3.RabbitMQ UI管理界面使用(用戶、虛擬主機)

    RabbitMQ專欄目錄(點擊進入…) 1.服務方式 (1)打開服務 (2)在RabbitMQ Command Prompt中執(zhí)行命令(方式一) 管理插件包含在RabbitMQ發(fā)行版中。與其他任何插件一樣,必須先啟用它才能使用它 (3)cmd執(zhí)行命令(方式二) 因為在上面配置了RabbitMQ的sbin環(huán)境變量,所以在cmd中執(zhí)行

    2024年02月05日
    瀏覽(55)
  • 《開始使用PyQT》 第01章 PyQT入門 03 用戶界面介紹

    《開始使用PyQT》 第01章 PyQT入門 03 用戶界面介紹 The user interface (UI) has become a key part of our everyday lives, becoming the intermediary between us and our ever-growing number of machines. A UI is designed to facilitate in human-computer interaction. The human needs to operate and control the machine to serve some purpose; meanwhile, t

    2024年02月21日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包