女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣使用Streamlit創建AutoGen用戶界面?

冬至子 ? 來源:思否AI ? 作者:思否AI ? 2023-11-08 14:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

AutoGen作為一個最大化LLM(如GPT-4)能力的框架而脫穎而出。由微軟研究院開發的AutoGen通過提供一種自動化、優化和編排工作流的方法,簡化了復雜的、基于多代理llm的應用程序的創建。我們在以前的文章中也有過介紹,你可以與許多GPT交談,并且GPT和GPT之間也可以互相交談。每個GPT都是它自己的“代理”,并在總體業務流程中扮演特殊角色。

但是AutoGen是用命令行模式進行交互的,這對我們的輸入來說非常不方便,所以這次我們來對其進行改造,使用Streamlit創建一個web界面,這樣可以讓我們更好的與其交互。

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

這里需要注意的是:

明確要求不要運行代碼或將文件存儲在本地,因為這是Streamlit限制—而不是AutoGen限制。

簡單介紹AutoGen

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

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

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

AutoGen代理可以合并llm、人工輸入和其他工具的組合,克服每個組件單獨的局限性。無論是代碼生成、執行、調試還是復雜任務解決,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

然后創建

app.py

首先是導入包:

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

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

然后使用Streamlit的write函數設置應用的標題:

st.write("# AutoGen Chat Agents")

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

然后就是創建自定義代理類,需要擴展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的側邊欄功能進行配置:

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了

然后就是創建主聊天界面并處理輸入:

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
                 }
             ]
         }

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

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

# 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)

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

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

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())

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

總結

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • GPT
    GPT
    +關注

    關注

    0

    文章

    368

    瀏覽量

    16041
  • LLM
    LLM
    +關注

    關注

    1

    文章

    325

    瀏覽量

    806
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    在PLC中創建基于Web的人機界面可視化

    進行維護操作期間。傳統的 HMI 交互方式往往需要人員親臨現場,極為不便。針對此類場景,西門子在所有 1500 系列 PLC 中集成了 Web 服務器,支持遠程交互。通過“View Of Things”(物聯視圖)功能,用戶可直接在 PLC 內部創建 HMI 可視化
    的頭像 發表于 05-06 10:00 ?2490次閱讀
    在PLC中<b class='flag-5'>創建</b>基于Web的人機<b class='flag-5'>界面</b>可視化

    《AI Agent 應用與項目實戰》閱讀心得2——客服機器人、AutoGen框架 、生成式代理

    ,Airtable負責知識庫管理,Voiceflow處理對話流程設計,再配合GPT模型進行自然語言理解和生成。前端功能設計中引入了用戶意圖識別模塊,能夠準確捕捉用戶的查詢意圖并進行多維度分類,這種分類機制使得系統能夠
    發表于 02-25 21:59

    如何快速創建用戶自定義Board和App工程

    概述自HPM_SDKv1.7.0發布開始,在HPM_ENV中新增了user_template文件夾,以方便用戶快速創建自定義的Board和App工程。user_template是用戶模板工程,
    的頭像 發表于 02-08 13:38 ?488次閱讀
    如何快速<b class='flag-5'>創建</b><b class='flag-5'>用戶</b>自定義Board和App工程

    hyper-v 備份,hyper-v怎樣進行虛擬機的創建

    虛擬機技術打破了傳統計算機的限制,為我們帶來了全新的計算機模式。今天給大家介紹hyper-v怎樣進行虛擬機的創建? ? ?hyper-v怎樣進行虛擬機的創建? ? ?使用PowerSh
    的頭像 發表于 02-05 14:54 ?431次閱讀
    hyper-v 備份,hyper-v<b class='flag-5'>怎樣</b>進行虛擬機的<b class='flag-5'>創建</b>

    eIQ Time Series Studio工具使用攻略(三)-工程創建

    用戶打開TimeSeries Studio后,首先進入Home界面,如需創建用戶工程,需要在主界面找到“Tasks”模塊,然后選擇需要
    的頭像 發表于 01-09 16:12 ?1536次閱讀
    eIQ Time Series Studio工具使用攻略(三)-工程<b class='flag-5'>創建</b>

    Linux中的用戶創建

    Linux中的用戶創建 用戶的類型 超級管理用戶: 權限最高的用戶(uid:0) #uid:是用戶
    的頭像 發表于 12-20 14:24 ?708次閱讀
    Linux中的<b class='flag-5'>用戶</b>與<b class='flag-5'>創建</b>

    SOLIDWORKS 2025直觀的用戶界面

    在工程設計領域,SOLIDWORKS作為三維CAD軟件的佼佼者,一直致力于通過技術創新提升用戶體驗。隨著SOLIDWORKS 2025版本的發布,其在界面設計上的直觀性與易用性再次成為行業關注的焦點
    的頭像 發表于 12-12 17:22 ?655次閱讀

    DRV8821-23 EVM圖形用戶界面

    電子發燒友網站提供《DRV8821-23 EVM圖形用戶界面.pdf》資料免費下載
    發表于 12-05 15:08 ?0次下載
    DRV8821-23 EVM圖形<b class='flag-5'>用戶</b><b class='flag-5'>界面</b>

    DRV8800-01 EVM圖形用戶界面

    電子發燒友網站提供《DRV8800-01 EVM圖形用戶界面.pdf》資料免費下載
    發表于 12-02 11:07 ?0次下載
    DRV8800-01 EVM圖形<b class='flag-5'>用戶</b><b class='flag-5'>界面</b>

    把YOLOv11和Python Qt做個用戶界面程序

    早些時間,小編想把PID控制器優化部分通過Py Qt來實現用戶界面化,不過看著窗口一堆參數,有點發怵:這玩意誰用啊? 參考《PID控制器參數自動優化示例和比較》 后來就擱置了。 在通過Python
    的頭像 發表于 11-28 10:18 ?1564次閱讀
    把YOLOv11和Python Qt做個<b class='flag-5'>用戶</b><b class='flag-5'>界面</b>程序

    圖形用戶界面與命令行接口的比較

    在計算機科學和信息技術領域,用戶與計算機交互的方式主要分為兩種:圖形用戶界面(GUI)和命令行接口(CLI)。這兩種界面各有優勢和局限性,適用于不同的場景和
    的頭像 發表于 11-12 14:38 ?1162次閱讀

    ar與虛擬現實的區別 如何優化ar應用的用戶界面

    可以通過智能手機、平板電腦或專門的AR眼鏡看到現實世界和虛擬信息的結合。AR不會完全取代現實世界,而是增強用戶的現實體驗。 虛擬現實(VR) :虛擬現實則是創建一個完全虛擬的環境,用戶通過VR頭盔完全沉浸在一個由計算機生成的三維
    的頭像 發表于 11-11 10:05 ?1315次閱讀

    Molex莫仕助力推動高級用戶界面發展

    家電的未來將不再依賴按鈕和儀表盤,而是朝向更加直觀和互動的方向發展。受消費者期望的驅動,高級用戶界面(UI)正致力于呈現智能手機和家庭助手的簡單易用性。
    的頭像 發表于 11-05 16:00 ?799次閱讀

    加賀富儀艾電子CGI Studio助您創建嵌入式用戶界面解決方案

    人機交互界面(HMI)作為人與技術之間的溝通界面,正不斷拓展其在各行業的應用邊界,成為數字時代不可或缺的一部分。從工業控制、汽車儀表盤到智能家居、醫療設備,HMI技術的應用市場呈現出多元化和深度滲透的特點。
    的頭像 發表于 08-22 14:48 ?862次閱讀

    如何使用MATLAB創建預測模型

    MATLAB 簡介 MATLAB 是由 MathWorks 公司開發的,它提供了一個集成的計算環境,包括一個命令行界面、一個圖形用戶界面、一個編程語言和一個調試器。MATLAB 的主要優勢在于其矩陣運算能力,這使得它在處理大規
    的頭像 發表于 07-11 14:29 ?1119次閱讀
    主站蜘蛛池模板: 都匀市| 宝山区| 洛扎县| 寿阳县| 平潭县| 历史| 沧源| 鄂尔多斯市| 沧州市| 疏附县| 清河县| 宿松县| 广宗县| 泾川县| 霍州市| 漠河县| 嫩江县| 永定县| 德兴市| 泗水县| 葵青区| 库车县| 拜城县| 安岳县| 梓潼县| 广东省| 兴山县| 松滋市| 宁陵县| 淮南市| 阿拉善右旗| 古田县| 三门县| 新河县| 黎平县| 神农架林区| 桂东县| 友谊县| 外汇| 武功县| 汶川县|