autogen_ext.agents.video_surfer#
- class VideoSurfer(name: str, model_client: ChatCompletionClient, *, tools: List[BaseTool[BaseModel, BaseModel]] | Callable[[...]], Any] | Callable[[...]], Awaitable[Any]]] | None = None, description: str | None = None, system_message: str | None = None)[source]#
Bases:
AssistantAgentVideoSurfer ist ein spezialisierter Agent, der entwickelt wurde, um Fragen zu einer lokalen Videodatei zu beantworten.
Installation
pip install "autogen-ext[video-surfer]"
Dieser Agent nutzt verschiedene Werkzeuge, um Informationen aus dem Video zu extrahieren, wie z. B. seine Länge, Screenshots zu bestimmten Zeitpunkten und Audio-Transkripte. Er verarbeitet diese Elemente, um detaillierte Antworten auf Benutzeranfragen zu liefern.
Verfügbare Werkzeuge
- Parameter:
name (str) – Der Name des Agenten.
model_client (ChatCompletionClient) – Der Model-Client zur Generierung von Antworten.
tools (List[BaseTool[BaseModel, BaseModel] | Callable[..., Any] | Callable[..., Awaitable[Any]]] | None, optional) – Eine Liste von Werkzeugen oder Funktionen, die der Agent verwenden kann. Wenn nicht angegeben, werden standardmäßig alle Videowerkzeuge aus dem Aktionsraum verwendet.
description (str, optional) – Eine kurze Beschreibung des Agenten. Standardmäßig „Ein Agent, der Fragen zu einem lokalen Video beantworten kann.“.
system_message (str | None, optional) – Die Systemnachricht, die das Verhalten des Agenten steuert. Standardmäßig eine vordefinierte Nachricht.
Beispielverwendung
Das folgende Beispiel zeigt, wie ein Video-Surfing-Agent mit einem Model-Client erstellt und eine Antwort auf eine einfache Frage zu einem lokalen Video namens video.mp4 generiert wird.
import asyncio from autogen_agentchat.ui import Console from autogen_agentchat.conditions import TextMentionTermination from autogen_agentchat.teams import RoundRobinGroupChat from autogen_ext.models.openai import OpenAIChatCompletionClient from autogen_ext.agents.video_surfer import VideoSurfer async def main() -> None: """ Main function to run the video agent. """ # Define an agent video_agent = VideoSurfer( name="VideoSurfer", model_client=OpenAIChatCompletionClient(model="gpt-4o-2024-08-06") ) # Define termination condition termination = TextMentionTermination("TERMINATE") # Define a team agent_team = RoundRobinGroupChat([video_agent], termination_condition=termination) # Run the team and stream messages to the console stream = agent_team.run_stream(task="How does Adam define complex tasks in video.mp4? What concrete example of complex does his use? Can you save this example to disk as well?") await Console(stream) asyncio.run(main())
Das folgende Beispiel zeigt, wie ein VideoSurfer und ein UserProxyAgent mit MagenticOneGroupChat erstellt und verwendet werden.
import asyncio from autogen_agentchat.ui import Console from autogen_agentchat.teams import MagenticOneGroupChat from autogen_agentchat.agents import UserProxyAgent from autogen_ext.models.openai import OpenAIChatCompletionClient from autogen_ext.agents.video_surfer import VideoSurfer async def main() -> None: """ Main function to run the video agent. """ model_client = OpenAIChatCompletionClient(model="gpt-4o-2024-08-06") # Define an agent video_agent = VideoSurfer( name="VideoSurfer", model_client=model_client ) web_surfer_agent = UserProxyAgent( name="User" ) # Define a team agent_team = MagenticOneGroupChat([web_surfer_agent, video_agent], model_client=model_client,) # Run the team and stream messages to the console stream = agent_team.run_stream(task="Find a latest video about magentic one on youtube and extract quotes from it that make sense.") await Console(stream) asyncio.run(main())
- DEFAULT_DESCRIPTION = 'Ein Agent, der Fragen zu einem lokalen Video beantworten kann.'#
- DEFAULT_SYSTEM_MESSAGE = '\n Sie sind ein hilfreicher Agent, der ein Experte für die Beantwortung von Fragen zu einem Video ist.\n Wenn Sie aufgefordert werden, eine Frage zu einem Video zu beantworten, sollten Sie:\n 1. Prüfen, ob dieses Video lokal verfügbar ist.\n 2. Verwenden Sie das Transkript, um herauszufinden, auf welchen Teil des Videos sich die Frage bezieht.\n 3. Optional können Sie Screenshots von diesen Zeitpunkten verwenden\n 4. Geben Sie eine detaillierte Antwort auf die Frage.\n Antworten Sie mit TERMINATE, wenn die Aufgabe abgeschlossen ist.\n '#