autogen_ext.code_executors.jupyter#
- class JupyterCodeExecutor(kernel_name: str = 'python3', timeout: int = 60, output_dir: Path | str | None = None)[Quelle]#
Bases:
CodeExecutor,Component[JupyterCodeExecutorConfig]Eine Code-Executor-Klasse, die Code zustandsbehaftet mithilfe von [nbclient](jupyter/nbclient) ausführt.
Gefahr
Dies führt Code auf dem lokalen Rechner aus. Bei Verwendung mit LLM-generiertem Code ist Vorsicht geboten.
Beispiel für die direkte Verwendung
import asyncio from autogen_core import CancellationToken from autogen_core.code_executor import CodeBlock from autogen_ext.code_executors.jupyter import JupyterCodeExecutor async def main() -> None: async with JupyterCodeExecutor() as executor: cancel_token = CancellationToken() code_blocks = [CodeBlock(code="print('hello world!')", language="python")] code_result = await executor.execute_code_blocks(code_blocks, cancel_token) print(code_result) asyncio.run(main())
Beispiel für die Verwendung mit
PythonCodeExecutionToolimport asyncio from autogen_agentchat.agents import AssistantAgent from autogen_ext.code_executors.jupyter import JupyterCodeExecutor from autogen_ext.models.openai import OpenAIChatCompletionClient from autogen_ext.tools.code_execution import PythonCodeExecutionTool async def main() -> None: async with JupyterCodeExecutor() as executor: tool = PythonCodeExecutionTool(executor) model_client = OpenAIChatCompletionClient(model="gpt-4o") agent = AssistantAgent("assistant", model_client=model_client, tools=[tool]) result = await agent.run(task="What is the 10th Fibonacci number? Use Python to calculate it.") print(result) asyncio.run(main())
Beispiel für die Verwendung innerhalb eines
CodeExecutorAgentimport asyncio from autogen_agentchat.agents import CodeExecutorAgent from autogen_agentchat.messages import TextMessage from autogen_ext.code_executors.jupyter import JupyterCodeExecutor from autogen_core import CancellationToken async def main() -> None: async with JupyterCodeExecutor() as executor: code_executor_agent = CodeExecutorAgent("code_executor", code_executor=executor) task = TextMessage( content='''Here is some code ```python print('Hello world') ``` ''', source="user", ) response = await code_executor_agent.on_messages([task], CancellationToken()) print(response.chat_message) asyncio.run(main())
- Parameter:
Hinweis
Die Verwendung des aktuellen Verzeichnisses („.“) als Ausgabeverzeichnis ist veraltet. Bei Verwendung wird eine Deprecation-Warnung ausgegeben.
- component_config_schema#
alias von
JupyterCodeExecutorConfig
- component_provider_override: ClassVar[str | None] = 'autogen_ext.code_executors.jupyter.JupyterCodeExecutor'#
Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.
- async execute_code_blocks(code_blocks: list[CodeBlock], cancellation_token: CancellationToken) JupyterCodeResult[Quelle]#
Führt Codeblöcke aus und gibt das Ergebnis zurück.
- async start() None[Quelle]#
(Experimentell) Startet den Code-Executor.
Initialisiert die Jupyter Notebook-Ausführungsumgebung, indem ein neues Notebook erstellt und mit dem angegebenen Jupyter Kernel eingerichtet wird. Markiert den Executor als gestartet, was die Codeausführung ermöglicht. Diese Methode sollte vor der Ausführung von Codeblöcken aufgerufen werden.