Dockerコンテナを使用してAPIサーバーを起動するか、このリポジトリを手動でクローン化および構築できます。
手動のセットアップ:このリポジトリをローカルマシンでクローンし、Python Fast APIサーバーを起動します。オプションで、Mongo DBをインストールしてセットアップします。
開発コンテナのセットアップ:開発装置では、環境セットアップを自動化できます。このセットアップを使用して、拡張機能がプリインストールされた孤立した環境にコンテナサービスをインストールおよび実行します。また、モデルAPIキーを渡すためにシークレットを使用して、リモート環境/ブラウザでGitHubコードスペースを開くこともできます。
python virtualenvをセットアップし、依存関係をインストールします
python -m venv --prompt agent-builder-api venv
source venv/bin/activate
# venv/Scripts/activate (Windows)
pip install -r requirements.txtモデル名とAPIキーを.envファイルに設定します
OPENAI_API_KEY = " sk---- "
MODEL_NAME = " openai "新しい端末からサーバーを起動します
python -m agentbuilder.mainきめの密集した依存関係管理については、詩を使用して、LLMモデルプロバイダーとツール機能に基づいて依存関係パックを選択して選択します。
詩をインストールするために、局所指導ガイドに従ってください。
インストールする依存関係パックを選択して選択します。
poetry install --extras " openai gemini cohere anthropic mongodb vectordb langgraph "モデル名とAPIキーを.envファイルに設定します
OPENAI_API_KEY = " sk---- "
MODEL_NAME = " openai "新しい端末からサーバーを起動します
poetry run start-server注記
詩は私たちのために仮想環境を作り出します。
デフォルトでは、データはJSONファイルとして保存されます。環境変数を使用してURLを設定することにより、Mongo DBのストレージを有効にします。
MONGODB_URL = " mongodb://localhost:27017/llmdb "公式文書の手順に従って、VSCODEで開発コンテナを有効にします。
下のバッジをクリックして、ローカルマシンの孤立したコンテナ環境でサービスを実行します。
これにより、リポジトリがクローン化され、APIおよびMongo DBコンテナサービスが開始されます。
ヒント
URL mongodb:// mongodb:27017/llmdbをMongo db vscode拡張機能で使用して、ストレージデータを表示します。
F1> DEVコンテナを実行:実行中のコンテナに接続し、 Agent-Builder-Containerを選択します。
モデル名とAPIキーを.envファイルに設定します
OPENAI_API_KEY = " sk---- "
MODEL_NAME = " openai " 依存関係パックにより、要件に基づいて細粒のパッケージインストールが可能になります。 Docker-Composeファイルの環境変数Extra_Depsを使用して更新します。
Docker-Composeが利用できない場合、 install-extra-deps.shスクリプトはDEVコンテナモードで使用できます。
たとえば、以下の環境構成は、Geminiモデル、Mongo DB、Langchainグラフ、およびVectordBの依存関係をインストールします
EXTRA_DEPS : " gemini,mongodb,langgraph,vectordb " ヒント
モデルをサポートし、他の機能を段階的に追加するための基本的な依存関係パックから始めます
次のモデルは、その依存関係パックによってサポートされています
| モデル | 依存関係パック | envキー名 |
|---|---|---|
| AIを開きます | Openai | openai_api_key |
| ジェミニ | ジェミニ | google_api_key |
| 協力します | 協力します | cohere_api_key |
| 人類 | 人類 | Anthropic_api_key |
いくつかの事前に構成されたツールでは、有効にするために追加の依存関係またはAPIキーが必要です。
| 道具 | 依存関係パック | envキー名 |
|---|---|---|
| Internet_search | - | tavily_api_key |
| VectorStore_search | Vectordb | embed_model_name |
Tool Factoryモジュール( AgentBuilder/Factory/Tool_Factory )を使用して、カスタムツールまたはツールキットを追加します。
ツールを作成します
AgentBuilder/Tools/my_custom_tool.py
from pathlib import Path
from langchain_core . tools import tool
from pydantic import BaseModel , Field
@ tool
def my_custom_tool ( a : int , b : int ):
"""Custom Tool Description"""
return a + b
my_custom_tool . name = "custom_tool_name"
my_custom_tool . description = "Custom Tool Description"
class field_inputs ( BaseModel ):
a : int = Field ( description = "First input" )
b : int = Field ( description = "Second input" )
my_custom_tool . args_schema = sum_inputs
my_custom_tool . metadata = { "file_path" : str ( Path ( __file__ ). absolute ())}tool_Factoryモジュールのget_all_toolsメソッドにツールを追加します。
AgentBuilder/Factory/Tool_Factory.py
def get_all_tools()->Sequence[BaseTool]:
return get_vectordb_tools()+ get_websearch_tools() + json_tools + [
directly_answer_tool,
weather_clothing_tool,
temperature_tool,
temperature_sensor_tool,
sum_tool,greeting_tool,
git_diff_tool,
repl_tool,
+ my_custom_tool
]エージェントは、拡張UIを使用して作成するか、コードで宣言することができます。エージェントファクトリーモジュール( AgentBuilder/Factory/Agent_Factory )を使用してエージェントを追加します。
エージェントを作成します
def my_agent ():
return AgentParams (
name = "my_agent" ,
preamble = "You are a powerful agent that uses tools to answer Human questions" ,
tools = [ "my_custom_tool" ],
agent_type = 'tool_calling'
)get_all_agentsメソッドにエージェントを追加します。
def get_all_agents():
return [
default_agent(),
weather_agent(),
python_agent(),
git_agent(),
+ my_agent()
]カスタムプロンプトとグラフを使用して、エージェントワークフローをカスタマイズします。エージェント名を使用してエージェントをフィルタリングして、カスタマイズを適用します。
たとえば、次のコードは、「graph_agent」という名前のエージェントにグラフビルダーワークフローを適用します。
def get_agent_builder ( params : AgentBuilderParams ):
agent_name = params . name
match agent_name :
case "graph_agent" :
from agentbuilder . agents . BaseGraphAgentBuilder import BaseGraphAgentBuilder
return BaseGraphAgentBuilder ( params )
case _ :
return BaseAgentBuilder ( params )重要
BaseGraphagentBuilder用に依存関係パック「Langgraph」をインストールする必要があります。
環境変数を使用したモデル構成を更新します。
{provider}/{modelName}形式をサポートします
ジェミニ
APIキーhttps://aistudio.google.com/app/apikeyを作成します
MODEL_NAME = " gemini/gemini-pro "
EMBED_MODEL_NAME = " gemini/embedding-001 "
GOOGLE_API_KEY = <GOOGLE_API_KEY>協力します
APIキーを作成https://dashboard.cohere.com/api-keysを作成します
MODEL_NAME = " cohere/command "
EMBED_MODEL_NAME = " cohere/embed-english-v3.0 "
COHERE_API_KEY = <COHERE_API_KEY>AIを開きます
APIキーを作成https://platform.openai.com/docs/quickstart/account-setupを作成します
MODEL_NAME = " openai/gpt-4o "
EMBED_MODEL_NAME = " openai/text-embedding-3-large "
OPENAI_API_KEY = <OPENAI_API_KEY>人類
APIキーを作成https://www.anthropic.com/およびhttps://www.voyageai.com/
MODEL_NAME = " anthropic/claude-3-opus-20240229 "
EMBED_MODEL_NAME = " voyageai/voyage-2 "
ANTHROPIC_API_KEY = <ANTHROPIC_API_KEY>
VOYAGE_API_KEY = <VOYAGE_API_KEY>オラマ
関数呼び出しにローカルモデルを使用します。
ヒント
JSONチャットエージェントタイプを使用して、ローカルモデルとの互換性を向上させます。
オラマをインストールして、モデルを引っ張ります。
ollama pull mistral:v0.3環境変数を設定します。
MODEL_NAME = " ollama/mistral:v0.3 "