LangChainのPythonエージェントを直接のPython実行に対して選ぶ人々がいくつかの主な理由があるかもしれません:
1.便利さ - Pythonエージェントは、スクリプトやファイルの設定などをせずに、Pythonコードを対話的な形式で実行し、結果を得る簡単な方法を提供します。LangChainがコードの実行を裏で処理します。
例えば、Pythonで100に最も近い素数を見つけるコードは次のようになります。
from sympy import sieve, prime
def closestprime(n):
if n <= 2: return 2
p, q = (prime(j) for j in sieve.search(n))
return p if n*n <= p*q else q
closestprime(100)
一方、ユーザーはLangChainのPythonエージェントを使えば、Pythonコードを容易に実行できます。
# Load env files
load_dotenv()
openai_api_key = os.environ_get('openai_api_key')
# Create a Python agent
agent_executor = create_python_agent(
llm=ChatOpenAI(openai_api_key=openai_api_key,
temperature=0,
max_tokens=1000,
model_name="gpt-3.5-turbo"),
tool=PythonREPLTool(),
verbose=True)
# Run the agent
agent_executor.run("What is the closest prime number to 100?")
2.サンドボックス - LangChainのPythonエージェントは、コードをサンドボックス環境で実行するため、悪意のあるアクセスや意図しないシステムへのアクセスを防ぎます。これにより、自分自身のマシン上でPythonを直接実行するよりも安全性とセキュリティが向上します。
例えば、ユーザーがLangChain上でpython delete_system_files()をテストすると、ファイルの削除は実際には行われず、失敗するか何もしないようになります。
3.リソース - LangChainはPythonコードを実行するための計算リソースを提供します。ユーザーは自分自身のPython環境や依存関係(例:numpy)などを設定する必要がありません。LangChainが環境の設定とコードの実行を処理します。
4.永続性 - Pythonエージェントを使用すると、ユーザーはデータを持続させ、実行間で変数を再利用できます。これにより、独立したPythonスクリプトのように毎回すべてを再定義する代わりに、会話の中でより複雑なロジックを構築することが可能です。
例えば、ユーザーは python x = 1 として変数 x を定義し、後で python print(x) として変数 x を再利用できます。
5.協力 - 複数の人々がエージェントを使用し、お互いの作業に基づいてコードを構築できます。コードは個々のマシンではなく、LangChainのサーバーに永続化されます。
例えば、2人のユーザーはLangChain上のmath_helpers.pyファイルに関数を交互に追加して、コードを共有できます。
6.アクセシビリティ - Pythonエージェントは、ローカルにPythonをインストールしていない、または自分自身のプログラム環境を設定するアクセスがない人々に、Pythonコードを実行する手段を提供します。例えば、LangChainを介してスマートフォンでPythonコードを記述する場合でも、Pythonをインストールする必要がありません。
以上のように、Pythonエージェントは自分自身のプログラミング環境を設定せずに、Pythonを簡単で安全な方法で利用し、持続的な共同作業が可能となります。そのトレードオフとして、ローカルリソースやシステムへの完全なアクセス権があるのではなく、LangChainのホステッドサンドボックス内で実行されます。