videosdk-agents


Namevideosdk-agents JSON
Version 0.0.20 PyPI version JSON
download
home_pageNone
SummaryVideo SDK Agents
upload_time2025-07-11 11:28:29
maintainerNone
docs_urlNone
authorvideosdk
requires_python>=3.11
licenseNone
keywords agents ai audio realtime video videosdk webrtc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            VideoSDK Agents

Agents Framework on top of VideoSDK's architecture.

## Installation

```bash
pip install videosdk-agents
```

Visit https://docs.videosdk.live/ai_agents/introduction for Quickstart, Examples and Detailed Documentation.

## Usage

```py
import asyncio
from videosdk.agents import Agent, AgentSession, RealTimePipeline, function_tool, WorkerJob, RoomOptions, JobContext
from videosdk.plugins.openai import OpenAIRealtime, OpenAIRealtimeConfig
from openai.types.beta.realtime.session import InputAudioTranscription, TurnDetection


class MyVoiceAgent(Agent):
    def __init__(self):
        super().__init__(
            instructions="You are a helpful voice assistant that can answer questions and help with tasks.",
        )

    async def on_enter(self) -> None:
        await self.session.say("How can i assist you today?")

async def entrypoint(ctx: JobContext):
    print("Starting connection test...")
    print(f"Job context: {jobctx}")
    
    model = OpenAIRealtime(
        model="gpt-4o-realtime-preview",
        config=OpenAIRealtimeConfig( modalities=["text", "audio"] )
    )
    pipeline = RealTimePipeline(model=model)
    session = AgentSession(
        agent=MyVoiceAgent(), 
        pipeline=pipeline,
        context=jobctx
    )

    try:
        await ctx.connect()
        await session.start()
        print("Connection established. Press Ctrl+C to exit.")
        await asyncio.Event().wait()
    except KeyboardInterrupt:
        print("\nShutting down gracefully...")
    finally:
        await session.close()
        await ctx.shutdown()


def make_context() -> JobContext:
    room_options = RoomOptions(room_id="<meeting_id>", name="Sandbox Agent", playground=True)
    
    return JobContext(
        room_options=room_options
        )


if __name__ == "__main__":
    job = WorkerJob(job_func=entryPoint, jobctx=make_context)
    job.start()
```



            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "videosdk-agents",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "agents, ai, audio, realtime, video, videosdk, webrtc",
    "author": "videosdk",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/d7/e4/94198d41418aa0bdd78e93c974a49070a9c3a01ce652756f2ea3c99bff82/videosdk_agents-0.0.20.tar.gz",
    "platform": null,
    "description": "VideoSDK Agents\n\nAgents Framework on top of VideoSDK's architecture.\n\n## Installation\n\n```bash\npip install videosdk-agents\n```\n\nVisit https://docs.videosdk.live/ai_agents/introduction for Quickstart, Examples and Detailed Documentation.\n\n## Usage\n\n```py\nimport asyncio\nfrom videosdk.agents import Agent, AgentSession, RealTimePipeline, function_tool, WorkerJob, RoomOptions, JobContext\nfrom videosdk.plugins.openai import OpenAIRealtime, OpenAIRealtimeConfig\nfrom openai.types.beta.realtime.session import InputAudioTranscription, TurnDetection\n\n\nclass MyVoiceAgent(Agent):\n    def __init__(self):\n        super().__init__(\n            instructions=\"You are a helpful voice assistant that can answer questions and help with tasks.\",\n        )\n\n    async def on_enter(self) -> None:\n        await self.session.say(\"How can i assist you today?\")\n\nasync def entrypoint(ctx: JobContext):\n    print(\"Starting connection test...\")\n    print(f\"Job context: {jobctx}\")\n    \n    model = OpenAIRealtime(\n        model=\"gpt-4o-realtime-preview\",\n        config=OpenAIRealtimeConfig( modalities=[\"text\", \"audio\"] )\n    )\n    pipeline = RealTimePipeline(model=model)\n    session = AgentSession(\n        agent=MyVoiceAgent(), \n        pipeline=pipeline,\n        context=jobctx\n    )\n\n    try:\n        await ctx.connect()\n        await session.start()\n        print(\"Connection established. Press Ctrl+C to exit.\")\n        await asyncio.Event().wait()\n    except KeyboardInterrupt:\n        print(\"\\nShutting down gracefully...\")\n    finally:\n        await session.close()\n        await ctx.shutdown()\n\n\ndef make_context() -> JobContext:\n    room_options = RoomOptions(room_id=\"<meeting_id>\", name=\"Sandbox Agent\", playground=True)\n    \n    return JobContext(\n        room_options=room_options\n        )\n\n\nif __name__ == \"__main__\":\n    job = WorkerJob(job_func=entryPoint, jobctx=make_context)\n    job.start()\n```\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Video SDK Agents",
    "version": "0.0.20",
    "project_urls": null,
    "split_keywords": [
        "agents",
        " ai",
        " audio",
        " realtime",
        " video",
        " videosdk",
        " webrtc"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b61c2ef89dabd6b92a3c0eb7bce5b2c12df888e76cdf8c611d8f79fca6dd1fb",
                "md5": "eb1eddabb2b8dabd811449041f90f2f2",
                "sha256": "7c96d4a0fbdeab5d76245623db53d9eb7e729c064a3c4a9f5865645512f29945"
            },
            "downloads": -1,
            "filename": "videosdk_agents-0.0.20-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eb1eddabb2b8dabd811449041f90f2f2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 48177,
            "upload_time": "2025-07-11T11:28:27",
            "upload_time_iso_8601": "2025-07-11T11:28:27.903078Z",
            "url": "https://files.pythonhosted.org/packages/2b/61/c2ef89dabd6b92a3c0eb7bce5b2c12df888e76cdf8c611d8f79fca6dd1fb/videosdk_agents-0.0.20-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d7e494198d41418aa0bdd78e93c974a49070a9c3a01ce652756f2ea3c99bff82",
                "md5": "337bfbe67a39c796e7a59a27ecee5989",
                "sha256": "a2bcc9bea12288360f715cd0d0400f4edc632e17523044d4987e965d1ef48550"
            },
            "downloads": -1,
            "filename": "videosdk_agents-0.0.20.tar.gz",
            "has_sig": false,
            "md5_digest": "337bfbe67a39c796e7a59a27ecee5989",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 36084,
            "upload_time": "2025-07-11T11:28:29",
            "upload_time_iso_8601": "2025-07-11T11:28:29.418187Z",
            "url": "https://files.pythonhosted.org/packages/d7/e4/94198d41418aa0bdd78e93c974a49070a9c3a01ce652756f2ea3c99bff82/videosdk_agents-0.0.20.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-11 11:28:29",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "videosdk-agents"
}
        
Elapsed time: 1.05384s