Agent Select:ソース:main.py


import os
import streamlit as st

# custom tools
from tools.command_list import set_work_space
from tools.command_list import load_ai_agent_name_list
from tools.command_list import get_tool_list
import tools.command_list
from tools.AIAgent import AIAgent
from tools.PythonProgramerAgent import PythonProgramerAgent
from tools.WebSerchAgent import WebSerchAgent
################################################
##########################################################
def init_page():
    st.set_page_config(
        page_title="Agents chat",
        page_icon=""
    )
    st.sidebar.title("Options")
    # エージェント選択
    agents = []
    agents_dict=tools.command_list.g_tdb.ai_agent_dict
    agents.append("なし")
    for key  in agents_dict:
        if "User" not in key:
            agents.append(key+":"+agents_dict[key][0])
    ai_agent_name = st.sidebar.selectbox(
        "エージェントを選択してください",
        agents
    )
    list_buf = ai_agent_name.split(":")


    if 1 < len(list_buf):
        #選択されているとき
        st.header(list_buf[0] + " Agent")

        # 
        ai_agent_name = list_buf[0]
    else:        
        # なしの時
        st.header("No Agent")
    # 温度設定
    temperature = st.sidebar.slider(
        "温度 (0-1)",
        min_value=0.0,
        max_value=1.0,
        value=0.0,
        step=0.1
    )

    return ai_agent_name, temperature

def init_messages(ai_agent):
    clear_button = st.sidebar.button("Clear Conversation", key="clear")
    if clear_button or "messages" not in st.session_state:
        st.session_state.messages = [
            {"role": "assistant", "content": "ご用件を入力してください。"}
        ]
        ai_agent.clear_memory()

def get_ai_agent(name):
    if "なし" == name:
        return AIAgent("None", "", get_tool_list())
    if "WebSerch" == name:
        return WebSerchAgent()
    if "PythonProgramer" == name:
        return PythonProgramerAgent()
    return AIAgent(name, "", get_tool_list())
def main():
    load_ai_agent_name_list()
 
    ai_agent_name, temperature = init_page()
    ai_agent = get_ai_agent(ai_agent_name)
    ai_agent.update_temperature(temperature)
    init_messages(ai_agent)
    set_work_space(os.getcwd())
    print("current folder", os.getcwd())
    for msg in st.session_state['memory'].chat_memory.messages:
        st.chat_message(msg.type).write(msg.content)
    # セッション状態に値がある場合のみテキスト入力欄を表示

    if user_prompt := st.chat_input(placeholder="作業内容を入れてください"):
        st.chat_message("user").write(user_prompt)

        respons = ai_agent.get_respons(user_prompt)
        st.chat_message("Python program agent").write(respons)
    print("end_of_main")
if __name__ == '__main__':
    main()

以下AIによる説明

リファレンスマニュアル

概要

このプログラムは、Streamlitを用いて、複数のAIエージェントとチャットできるアプリケーションです。

機能

  • エージェント選択: サイドバーから、利用可能なAIエージェントを選択できます。
  • 温度設定: サイドバーから、AIエージェントの応答のランダム性を調整する温度を設定できます。
  • 会話クリア: サイドバーから、現在の会話履歴をクリアできます。
  • チャット: テキスト入力欄にメッセージを入力して、選択したAIエージェントとチャットできます。

エージェント

  • なし: 特定のエージェントが選択されていない場合、デフォルトのエージェントとして動作します。
  • WebSerch: Web検索を行うエージェントです。
  • PythonProgramer: Pythonプログラムを作成するエージェントです。

使い方

  1. プログラムを実行します。
  2. サイドバーから、利用したいAIエージェントを選択します。
  3. サイドバーから、温度を設定します。
  4. テキスト入力欄にメッセージを入力して、AIエージェントとチャットします。

注意点

  • AIエージェントの応答は、温度設定によってランダム性が変化します。
  • AIエージェントは、常に正確な情報を提供するとは限りません。
  • AIエージェントは、倫理的に問題のある応答をする可能性があります。

その他

  • このプログラムは、Streamlitを用いて開発されています。
  • このプログラムは、Pythonで記述されています。