Skip to content

Commit b05a60a

Browse files
committed
add readme
1 parent 71affcc commit b05a60a

File tree

16 files changed

+4632
-0
lines changed

16 files changed

+4632
-0
lines changed

plugins/aws/README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# AWS Plugin for Vision Agents
2+
3+
AWS (Bedrock) LLM integration for Vision Agents framework with support for both standard and realtime interactions.
4+
5+
## Installation
6+
7+
```bash
8+
pip install vision-agents-plugins-aws
9+
```
10+
11+
## Usage
12+
13+
### Standard LLM Usage
14+
15+
This example shows how to use qwen3 on bedrock for the LLM.
16+
17+
```python
18+
agent = Agent(
19+
edge=getstream.Edge(),
20+
agent_user=User(name="Friendly AI"),
21+
instructions="Be nice to the user",
22+
llm=aws.LLM(model="qwen.qwen3-32b-v1:0"),
23+
tts=cartesia.TTS(),
24+
stt=deepgram.STT(),
25+
turn_detection=smart_turn.TurnDetection(buffer_duration=2.0, confidence_threshold=0.5),
26+
)
27+
```
28+
29+
The full example is available in example/aws_qwen_example.py
30+
31+
### Realtime Text/Image Usage
32+
33+
Nova sonic audio realtime STS is also supported:
34+
35+
```python
36+
agent = Agent(
37+
edge=getstream.Edge(),
38+
agent_user=User(name="Story Teller AI"),
39+
instructions="Tell a story suitable for a 7 year old about a dragon and a princess",
40+
llm=aws.Realtime(),
41+
)
42+
```
43+

plugins/aws/example/.env.example

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Stream API credentials
2+
STREAM_API_KEY=your_stream_api_key_here
3+
STREAM_API_SECRET=your_stream_api_secret_here
4+
EXAMPLE_BASE_URL=https://pronto.getstream.io
5+
6+
# Deepgram API credentials
7+
DEEPGRAM_API_KEY=your_deepgram_api_key_here

plugins/aws/example/__init__.py

Whitespace-only changes.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import asyncio
2+
import logging
3+
from uuid import uuid4
4+
5+
from dotenv import load_dotenv
6+
7+
from vision_agents.core import User
8+
from vision_agents.core.agents import Agent
9+
from vision_agents.plugins import aws, getstream, cartesia, deepgram, smart_turn
10+
11+
load_dotenv()
12+
13+
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s [call_id=%(call_id)s] %(name)s: %(message)s")
14+
logger = logging.getLogger(__name__)
15+
16+
17+
async def start_agent() -> None:
18+
agent = Agent(
19+
edge=getstream.Edge(),
20+
agent_user=User(name="Friendly AI"),
21+
instructions="Be nice to the user",
22+
llm=aws.LLM(model="qwen.qwen3-32b-v1:0"),
23+
tts=cartesia.TTS(),
24+
stt=deepgram.STT(),
25+
turn_detection=smart_turn.TurnDetection(buffer_duration=2.0, confidence_threshold=0.5),
26+
# Enable turn detection with FAL/ Smart turn
27+
)
28+
await agent.create_user()
29+
30+
call = agent.edge.client.video.call("default", str(uuid4()))
31+
await agent.edge.open_demo(call)
32+
33+
with await agent.join(call):
34+
await asyncio.sleep(5)
35+
await agent.llm.simple_response(text="Say hi")
36+
await agent.finish()
37+
38+
39+
if __name__ == "__main__":
40+
asyncio.run(start_agent())
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import asyncio
2+
import logging
3+
from uuid import uuid4
4+
5+
from dotenv import load_dotenv
6+
7+
from vision_agents.core import User
8+
from vision_agents.core.agents import Agent
9+
from vision_agents.plugins import aws, getstream
10+
11+
load_dotenv()
12+
13+
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s [call_id=%(call_id)s] %(name)s: %(message)s")
14+
logger = logging.getLogger(__name__)
15+
16+
17+
async def start_agent() -> None:
18+
agent = Agent(
19+
edge=getstream.Edge(),
20+
agent_user=User(name="Story Teller AI"),
21+
instructions="Tell a story suitable for a 7 year old about a dragon and a princess",
22+
llm=aws.Realtime(),
23+
)
24+
await agent.create_user()
25+
26+
call = agent.edge.client.video.call("default", str(uuid4()))
27+
await agent.edge.open_demo(call)
28+
29+
with await agent.join(call):
30+
await asyncio.sleep(5)
31+
await agent.llm.simple_response(text="Say hi and start the story")
32+
await agent.finish()
33+
34+
35+
if __name__ == "__main__":
36+
asyncio.run(start_agent())

plugins/aws/example/pyproject.toml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[project]
2+
name = "gemini-live-realtime-example"
3+
version = "0.0.0"
4+
requires-python = ">=3.10"
5+
6+
# put only what this example needs
7+
dependencies = [
8+
"python-dotenv>=1.0",
9+
"vision-agents-plugins-gemini",
10+
"vision-agents-plugins-getstream",
11+
"vision-agents",
12+
"google-genai>=1.33.0",
13+
"opentelemetry-exporter-otlp>=1.37.0",
14+
"opentelemetry-exporter-prometheus>=0.58b0",
15+
"prometheus-client>=0.23.1",
16+
"opentelemetry-sdk>=1.37.0",
17+
]
18+
19+
[tool.uv.sources]
20+
"vision-agents-plugins-getstream" = {path = "../../../plugins/getstream", editable=true}
21+
"vision-agents-plugins-gemini" = {path = "../../../plugins/gemini", editable=true}
22+
"vision-agents" = {path = "../../../agents-core", editable=true}

plugins/aws/example/uv.lock

Lines changed: 3232 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/aws/py.typed

Whitespace-only changes.

plugins/aws/pyproject.toml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
[build-system]
2+
requires = ["hatchling", "hatch-vcs"]
3+
build-backend = "hatchling.build"
4+
5+
[project]
6+
name = "vision-agents-plugins-aws"
7+
dynamic = ["version"]
8+
description = "AWS (Bedrock) LLM integration for Vision Agents"
9+
readme = "README.md"
10+
keywords = ["aws", "bedrock", "LLM", "AI", "voice agents", "agents"]
11+
requires-python = ">=3.12"
12+
license = "MIT"
13+
dependencies = [
14+
"vision-agents",
15+
"boto3>=1.28.0",
16+
"aws-sdk-bedrock-runtime>=0.1.0",
17+
]
18+
19+
[project.urls]
20+
Documentation = "https://visionagents.ai/"
21+
Website = "https://visionagents.ai/"
22+
Source = "https://github.com/GetStream/Vision-Agents"
23+
24+
[tool.hatch.version]
25+
source = "vcs"
26+
raw-options = { root = "..", search_parent_directories = true, fallback_version = "0.0.0" }
27+
28+
[tool.hatch.build.targets.wheel]
29+
packages = ["."]
30+
31+
[tool.hatch.build.targets.sdist]
32+
include = ["/vision_agents"]
33+
34+
[tool.uv.sources]
35+
vision-agents = { workspace = true }
36+
37+
[dependency-groups]
38+
dev = [
39+
"pytest>=8.4.1",
40+
"pytest-asyncio>=1.0.0",
41+
]

plugins/aws/tests/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)