From c4fbac3765daa362610f9e44518fe8fb47b27d76 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 3 Mar 2025 01:19:24 +0100 Subject: [PATCH 1/2] agent vapi --- .../twilio/agent_twilio/src/agents/agent.py | 6 +- .../livekit-trunk-setup/twilio_trunk.py | 26 ++- .../twilio/livekit_pipeline/src/pipeline.py | 18 +- agent_telephony/vapi/agent_vapi/.env.Example | 12 ++ agent_telephony/vapi/agent_vapi/.gitignore | 5 + .../vapi/agent_vapi/agent_call.png | Bin 0 -> 39340 bytes .../vapi/agent_vapi/agent_replay.png | Bin 0 -> 118089 bytes .../vapi/agent_vapi/event_agent.py | 25 +++ .../vapi/agent_vapi/pyproject.toml | 31 +++ agent_telephony/vapi/agent_vapi/readme.md | 176 ++++++++++++++++++ .../vapi/agent_vapi/schedule_agent.py | 27 +++ .../vapi/agent_vapi/src/__init__.py | 0 .../vapi/agent_vapi/src/agents/__init__.py | 0 .../vapi/agent_vapi/src/agents/agent.py | 65 +++++++ agent_telephony/vapi/agent_vapi/src/client.py | 19 ++ .../vapi/agent_vapi/src/functions/__init__.py | 0 .../vapi/agent_vapi/src/functions/llm_chat.py | 52 ++++++ .../agent_vapi/src/functions/vapi_call.py | 33 ++++ .../vapi/agent_vapi/src/services.py | 36 ++++ agent_video/src/functions/pipeline.py | 10 +- agent_video/src/workflows/room.py | 10 +- pyproject.toml | 2 +- 22 files changed, 523 insertions(+), 30 deletions(-) create mode 100644 agent_telephony/vapi/agent_vapi/.env.Example create mode 100644 agent_telephony/vapi/agent_vapi/.gitignore create mode 100644 agent_telephony/vapi/agent_vapi/agent_call.png create mode 100644 agent_telephony/vapi/agent_vapi/agent_replay.png create mode 100644 agent_telephony/vapi/agent_vapi/event_agent.py create mode 100644 agent_telephony/vapi/agent_vapi/pyproject.toml create mode 100644 agent_telephony/vapi/agent_vapi/readme.md create mode 100644 agent_telephony/vapi/agent_vapi/schedule_agent.py create mode 100644 agent_telephony/vapi/agent_vapi/src/__init__.py create mode 100644 agent_telephony/vapi/agent_vapi/src/agents/__init__.py create mode 100644 agent_telephony/vapi/agent_vapi/src/agents/agent.py create mode 100644 agent_telephony/vapi/agent_vapi/src/client.py create mode 100644 agent_telephony/vapi/agent_vapi/src/functions/__init__.py create mode 100644 agent_telephony/vapi/agent_vapi/src/functions/llm_chat.py create mode 100644 agent_telephony/vapi/agent_vapi/src/functions/vapi_call.py create mode 100644 agent_telephony/vapi/agent_vapi/src/services.py diff --git a/agent_telephony/twilio/agent_twilio/src/agents/agent.py b/agent_telephony/twilio/agent_twilio/src/agents/agent.py index 68ad08ec..e3de0eb8 100644 --- a/agent_telephony/twilio/agent_twilio/src/agents/agent.py +++ b/agent_telephony/twilio/agent_twilio/src/agents/agent.py @@ -14,12 +14,15 @@ class MessagesEvent(BaseModel): messages: list[Message] + class EndEvent(BaseModel): end: bool + class CallInput(BaseModel): phone_number: str + @agent.defn() class AgentTwilio: def __init__(self) -> None: @@ -65,10 +68,9 @@ async def end(self, end: EndEvent) -> EndEvent: log.info("Received end") self.end = True return end - + @agent.run async def run(self) -> None: - room = await agent.step(function=livekit_room) self.room_id = room.name diff --git a/agent_telephony/twilio/livekit-trunk-setup/twilio_trunk.py b/agent_telephony/twilio/livekit-trunk-setup/twilio_trunk.py index 9ef345a8..7e026e21 100644 --- a/agent_telephony/twilio/livekit-trunk-setup/twilio_trunk.py +++ b/agent_telephony/twilio/livekit-trunk-setup/twilio_trunk.py @@ -15,6 +15,7 @@ def get_env_var(var_name): exit(1) return value + def create_livekit_trunk(client, sip_uri): domain_name = f"livekit-trunk-{os.urandom(4).hex()}.pstn.twilio.com" trunk = client.trunking.v1.trunks.create( @@ -31,20 +32,17 @@ def create_livekit_trunk(client, sip_uri): logging.info("Created new LiveKit Trunk.") return trunk + def create_inbound_trunk(phone_number): - trunk_data = { - "trunk": { - "name": "Inbound LiveKit Trunk", - "numbers": [phone_number] - } - } + trunk_data = {"trunk": {"name": "Inbound LiveKit Trunk", "numbers": [phone_number]}} with open("inbound_trunk.json", "w") as f: json.dump(trunk_data, f, indent=4) result = subprocess.run( ["lk", "sip", "inbound", "create", "inbound_trunk.json"], capture_output=True, - text=True, check=False + text=True, + check=False, ) if result.returncode != 0: @@ -59,15 +57,12 @@ def create_inbound_trunk(phone_number): logging.error("Could not find inbound trunk SID in output.") return None + def create_dispatch_rule(trunk_sid): dispatch_rule_data = { "name": "Inbound Dispatch Rule", "trunk_ids": [trunk_sid], - "rule": { - "dispatchRuleIndividual": { - "roomPrefix": "call-" - } - } + "rule": {"dispatchRuleIndividual": {"roomPrefix": "call-"}}, } with open("dispatch_rule.json", "w") as f: json.dump(dispatch_rule_data, f, indent=4) @@ -75,7 +70,8 @@ def create_dispatch_rule(trunk_sid): result = subprocess.run( ["lk", "sip", "dispatch-rule", "create", "dispatch_rule.json"], capture_output=True, - text=True, check=False + text=True, + check=False, ) if result.returncode != 0: @@ -84,6 +80,7 @@ def create_dispatch_rule(trunk_sid): logging.info(f"Dispatch rule created: {result.stdout}") + def main(): load_dotenv() logging.basicConfig(level=logging.INFO) @@ -98,7 +95,7 @@ def main(): existing_trunks = client.trunking.v1.trunks.list() livekit_trunk = next( (trunk for trunk in existing_trunks if trunk.friendly_name == "LiveKit Trunk"), - None + None, ) if not livekit_trunk: @@ -110,5 +107,6 @@ def main(): if inbound_trunk_sid: create_dispatch_rule(inbound_trunk_sid) + if __name__ == "__main__": main() diff --git a/agent_telephony/twilio/livekit_pipeline/src/pipeline.py b/agent_telephony/twilio/livekit_pipeline/src/pipeline.py index fc0dda00..acca2520 100644 --- a/agent_telephony/twilio/livekit_pipeline/src/pipeline.py +++ b/agent_telephony/twilio/livekit_pipeline/src/pipeline.py @@ -21,30 +21,30 @@ logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) + def validate_envs() -> None: - """ - Check for the presence of all required environment variables. - Logs a warning if any variable is missing. - """ required_envs = { "LIVEKIT_URL": "LiveKit server URL", "LIVEKIT_API_KEY": "API Key for LiveKit", "LIVEKIT_API_SECRET": "API Secret for LiveKit", "DEEPGRAM_API_KEY": "API key for Deepgram (used for STT)", - "ELEVEN_API_KEY": "API key for ElevenLabs (used for TTS)" + "ELEVEN_API_KEY": "API key for ElevenLabs (used for TTS)", } for key, description in required_envs.items(): if not os.environ.get(key): logger.warning("Environment variable %s (%s) is not set.", key, description) + # Validate environments at module load validate_envs() + def prewarm(proc: JobProcess) -> None: logger.info("Prewarming: loading VAD model...") proc.userdata["vad"] = silero.VAD.load() logger.info("VAD model loaded successfully.") + async def entrypoint(ctx: JobContext) -> None: metadata = ctx.job.metadata @@ -75,11 +75,10 @@ async def entrypoint(ctx: JobContext) -> None: engine_api_address = os.environ.get("RESTACK_ENGINE_API_ADDRESS") if not engine_api_address: agent_backend_host = "http://localhost:9233" + elif not engine_api_address.startswith("https://"): + agent_backend_host = "https://" + engine_api_address else: - if not engine_api_address.startswith("https://"): - agent_backend_host = "https://" + engine_api_address - else: - agent_backend_host = engine_api_address + agent_backend_host = engine_api_address logger.info("Using RESTACK_ENGINE_API_ADDRESS: %s", agent_backend_host) @@ -120,6 +119,7 @@ def on_metrics_collected(agent_metrics: metrics.AgentMetrics) -> None: # Start the voice pipeline agent. agent.start(ctx.room, participant) + if __name__ == "__main__": cli.run_app( WorkerOptions( diff --git a/agent_telephony/vapi/agent_vapi/.env.Example b/agent_telephony/vapi/agent_vapi/.env.Example new file mode 100644 index 00000000..d08417bc --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/.env.Example @@ -0,0 +1,12 @@ + +RESTACK_API_KEY= +VAPI_TOKEN= + +# Restack Cloud (Optional) + +# RESTACK_ENGINE_ID= +# RESTACK_ENGINE_API_KEY= +# RESTACK_ENGINE_API_ADDRESS= +# RESTACK_ENGINE_ADDRESS= + + diff --git a/agent_telephony/vapi/agent_vapi/.gitignore b/agent_telephony/vapi/agent_vapi/.gitignore new file mode 100644 index 00000000..cf5930dc --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/.gitignore @@ -0,0 +1,5 @@ +__pycache__ +.pytest_cache +venv +.env +.vscode diff --git a/agent_telephony/vapi/agent_vapi/agent_call.png b/agent_telephony/vapi/agent_vapi/agent_call.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63ca8f73384f83046e29c3611d991a4959603a GIT binary patch literal 39340 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 z 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

*%;x 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

*OVk7=m%fES*3oP)mg0dAq`#qx1m@I|9-x@ z;g5TMH#bHq6?2C8fIXGDz^zs>oM^Yn{R(Pq|C=#*wek)13AKK~147^(?UaJfA#b?C zZB!hjis`g_7-FAQ#Sm~&!`gmAYK3|x;}qpkL07@c_#a~aWi<8`EU7AZfmJLoptYMQ z`{NZY1Y!llUe#Df(C(aQ7V?iV0VC+d~7Y zfK&Vi!x`TLMeUmzA^FBqwS2(JLk`!^Cxafp{X}T(TYn`N8vn3A9h6B`=qsVca=pr5 zWWl9wk7n3*^Lx>|UrFd1Ul2yu*;WNoZPxfOZtA8KxYnU>e4}bt*s)2t!#z#csGu&} zUTOJ4Fj-0N((DbCL^NdzTNmSCq+!tjIL*gpaQNzRn&~*N*`}E1%<3uvKeIPxZ_{+2 z6Semz#q0mmb6GUl)@bh|fY9&*+cU1of*+V9*a1O)dF#6-usPCi1pIRpzWsT_g|E@r z8ScJkyqwkykAM~7`;0|5*X0>?QwHIt*~ec(T)GB7j>*db=U(B9DY4o}-_b{ksBDr* zoIO?eYXQ&BPsP~xlX<&M#dk1Lb;b*Vk5?iXaCjl!tt81ZV{_a^`=`L9+Mfn@MtCp%QOjA_3&HOpYY9;e zu%h2HJl0dTY`!pf;J_a4uAVKk5JMp=K=naa{bBUjlV_*iI9rI-2}H*JzCZPw;?;)Z zH|>U-v}F#K(!t~z7ed0BY8_mCJ?UKc8iMurV?B?WXbJr*gLxcICyyiz*hUY3K7q}5 zL&jip3LCLJM*L+`pBq(AUXz_`uto!797doD`j5w!b#(WQBlmf#ZeBr~X2V-bQC8D-I>*hm z80}&L9`Nlv{zf%)F#)E~g_h#4HJxAzNmy)?^J=(o8D;f)UJk9OPiTv(Jdfh|4o)`A zWlbGy*7iQw&-Og(L$}T(sq*2>RP9u8X6klgxa{4v(vcb)duuj)*#bD_5nf`69yRK* zdc()_e)9!;?tXdyP`0*PGPc}6vytR-Z{(Pc%M;R78bZmvk?kyck{ikE@wB8e3TOaK zzvDcwoou~#RT#n>fjM;bcHPD-t#gBiWZKE8gxPz~sbdS57BmAQ_=K=7HwFC2Ge@gQz z%8I>l2=1#WTfYOXeQOe(2ji#1=4PLJ9z6;9p1;!?W(bL?AeVE6%~s z;8CiKALy*!q^6=9`3w|16$!PZVFfM1bS55T1wWb#1`*jsem?mU{Z+##xG;=UM21h~ zeb&J5U@r0}Nc&ho1_!yi^||@XtA0@SI_$c#N02CRy((tSIimwD)kPfI^lPsfL;Fh4 zP|s*g!ATN}#h34d(-0@>=7~4Sb3LQzg>FUZN2@hw^{W#Dv3a8>HGg*6ZMHb;@C4FU z&SnmPMtUg4TdDA>4iw9GGyuQ6$GvkU_%w|w;YrvHwod<-2R{_R@&vUbYjE;mt25IH z0-OQL#OTAj-k|4Bv;Y_9lVxZ2d)9XE1>c7!vZ2^aE|sJYi2J}K zejHQ#W$9-?faXIM>-IlJP&)la`>M|89w|�cy{vZj$$934?URS!86DNf;RJs|2y) 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 None: + client = Restack() + + await client.send_agent_event( + agent_id=agent_id, + run_id=run_id, + event_name="call", + event_input={"messages": [{"role": "user", "content": "Tell me another joke"}]}, + ) + + sys.exit(0) + + +def run_event_workflow() -> None: + asyncio.run(main(agent_id="your-agent-id", run_id="your-run-id")) + + +if __name__ == "__main__": + run_event_workflow() diff --git a/agent_telephony/vapi/agent_vapi/pyproject.toml b/agent_telephony/vapi/agent_vapi/pyproject.toml new file mode 100644 index 00000000..4b66f8ab --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/pyproject.toml @@ -0,0 +1,31 @@ +[project] +name = "agent_telephony_agent_vapi" +version = "0.0.1" +description = "An agent with streaming for Restack" +authors = [{ name = "Restack Team", email = "service@restack.io" }] +requires-python = ">=3.10,<3.13" +readme = "README.md" +dependencies = [ + "pydantic>=2.10.6", + "watchfiles>=1.0.4", + "python-dotenv==1.0.1", + "openai>=1.61.0", + "restack-ai>=0.0.77", + "vapi-server-sdk>=0.4.0", +] + +[project.scripts] +dev = "src.services:watch_services" +services = "src.services:run_services" +schedule = "schedule_agent:run_schedule_agent" +event = "event_agent:run_event_agent" + +[tool.hatch.build.targets.sdist] +include = ["src"] + +[tool.hatch.build.targets.wheel] +include = ["src"] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" diff --git a/agent_telephony/vapi/agent_vapi/readme.md b/agent_telephony/vapi/agent_vapi/readme.md new file mode 100644 index 00000000..8cab9aad --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/readme.md @@ -0,0 +1,176 @@ + +wip# Restack AI - Agent with Telephony - Vapi + +Build an AI agent that do an outbound call with Vapi and can interact with in realtime with voice. + +## Prerequisites + +- Docker (for running Restack) +- Python 3.10 or higher +- Vapi account + +### Create a Vapi account + +See more on [Vapi documentation](https://docs.vapi.ai/quickstart/phone/outbound) + +## Start Restack + +To start the Restack, use the following Docker command: + +```bash +docker run -d --pull always --name restack -p 5233:5233 -p 6233:6233 -p 7233:7233 -p 9233:9233 ghcr.io/restackio/restack:main +``` + +## Configure environment variables + +In all subfolders, duplicate the `env.example` file and rename it to `.env`. + +Obtain a Restack API Key to interact with the 'gpt-4o-mini' model at no cost from [Restack Cloud](https://console.restack.io/starter) + + +## Start Restack Agent with Twilio + +### Start python shell + +If using uv: + +```bash +uv venv && source .venv/bin/activate +``` + +If using pip: + +```bash +python -m venv .venv && source .venv/bin/activate +``` + +### Install dependencies + +If using uv: + +```bash +uv sync +uv run dev +``` + +If using pip: + +```bash +pip install -e . +python -c "from src.services import watch_services; watch_services()" +``` + +## Start Livekit voice pipeline + +### Start python shell + +If using uv: + +```bash +uv venv && source .venv/bin/activate +``` + +If using pip: + +```bash +python -m venv .venv && source .venv/bin/activate +``` + +### Install dependencies + +If using uv: + +```bash +uv sync +uv run python src/pipeline.py dev +``` + +If using pip: + +```bash +pip install -e . +python src/pipeline.py dev +``` + +## Configure Your Environment Variables + +Duplicate the `env.example` file and rename it to `.env`. + +Obtain a Restack API Key to interact with the 'gpt-4o-mini' model at no cost from [Restack Cloud](https://console.restack.io/starter) + +## Create a new Agent + +### from UI + +Run the agent from the UI by clicking the "Run" button for the agent "`POST http://localhost:6233/api/agents/AgentVapi` +". + +### from API + +Run the agent from the API by using the generated endpoint: + +`POST http://localhost:6233/api/agents/AgentVapi` + +Restack agent will create a Livekit WebRTC room and will ask a livekit pipeline to connect to it, ready for a phone call. + +## Trigger an outbound phone call + +### from API + +You can send events to the agent by using the following endpoint: + +`PUT http://localhost:6233/api/agents/AgentVapi/:agentId/:runId` + +with the payload: + +```json +{ + "eventName": "call", + "eventInput": { + "assistant_id": "assistant_id", + "phone_number": "+XXXXXXX" + } +} +``` + +to trigger an outbound phone call. + +or + +```json +{ + "eventName": "end" +} +``` + +to end the conversation with the agent. + +### from any client + +You can send event to the agent workflows with any client connected to Restack, for example: + +Modify agent_id and run_id in event_agent.py and then run: + +If using uv: + +```bash +uv run event +``` + +If using pip: + +```bash +python -c "from src.event_agent import run_event_agent; run_event_agent()" +``` + +![Trigger outbound call](./agent_call.png) + +## Follow the agent run + +You can replay and follow the agent run in the UI. + +![Replay agent run](./agent_replay.png) + +## Deploy on Restack Cloud + +To deploy the application on Restack, you can create an account at [https://console.restack.io](https://console.restack.io) diff --git a/agent_telephony/vapi/agent_vapi/schedule_agent.py b/agent_telephony/vapi/agent_vapi/schedule_agent.py new file mode 100644 index 00000000..20fdcb35 --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/schedule_agent.py @@ -0,0 +1,27 @@ +import asyncio +import sys +import time + +from restack_ai import Restack +from src.agents.agent import AgentStream + + +async def main() -> None: + client = Restack() + + agent_id = f"{int(time.time() * 1000)}-{AgentStream.__name__}" + run_id = await client.schedule_agent( + agent_name=AgentStream.__name__, agent_id=agent_id + ) + + await client.get_agent_result(agent_id=agent_id, run_id=run_id) + + sys.exit(0) + + +def run_schedule_agent() -> None: + asyncio.run(main()) + + +if __name__ == "__main__": + run_schedule_agent() diff --git a/agent_telephony/vapi/agent_vapi/src/__init__.py b/agent_telephony/vapi/agent_vapi/src/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/agent_telephony/vapi/agent_vapi/src/agents/__init__.py b/agent_telephony/vapi/agent_vapi/src/agents/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/agent_telephony/vapi/agent_vapi/src/agents/agent.py b/agent_telephony/vapi/agent_vapi/src/agents/agent.py new file mode 100644 index 00000000..c06ef655 --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/src/agents/agent.py @@ -0,0 +1,65 @@ +from datetime import timedelta + +from pydantic import BaseModel +from restack_ai.agent import agent, import_functions, log + +with import_functions(): + from src.functions.llm_chat import LlmChatInput, Message, llm_chat + from src.functions.vapi_call import VapiCallInput, vapi_call + + +class MessagesEvent(BaseModel): + messages: list[Message] + + +class EndEvent(BaseModel): + end: bool + + +class CallInput(BaseModel): + assistant_id: str + phone_number: str + + +@agent.defn() +class AgentVapi: + def __init__(self) -> None: + self.end = False + self.messages: list[Message] = [] + + @agent.event + async def messages(self, messages_event: MessagesEvent) -> list[Message]: + log.info(f"Received message: {messages_event.messages}") + self.messages.extend(messages_event.messages) + + assistant_message = await agent.step( + function=llm_chat, + function_input=LlmChatInput(messages=self.messages), + start_to_close_timeout=timedelta(seconds=120), + ) + self.messages.append(Message(role="assistant", content=str(assistant_message))) + return self.messages + + @agent.event + async def call(self, call_input: CallInput) -> None: + log.info("Call", call_input=call_input) + assistant_id = call_input.assistant_id + phone_number = call_input.phone_number + + return await agent.step( + function=vapi_call, + function_input=VapiCallInput( + assistant_id=assistant_id, + phone_number=phone_number, + ), + ) + + @agent.event + async def end(self, end: EndEvent) -> EndEvent: + log.info("Received end") + self.end = True + return end + + @agent.run + async def run(self) -> None: + await agent.condition(lambda: self.end) diff --git a/agent_telephony/vapi/agent_vapi/src/client.py b/agent_telephony/vapi/agent_vapi/src/client.py new file mode 100644 index 00000000..885bf8ea --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/src/client.py @@ -0,0 +1,19 @@ +import os + +from dotenv import load_dotenv +from restack_ai import Restack +from restack_ai.restack import CloudConnectionOptions + +# Load environment variables from a .env file +load_dotenv() + + +engine_id = os.getenv("RESTACK_ENGINE_ID") +address = os.getenv("RESTACK_ENGINE_ADDRESS") +api_key = os.getenv("RESTACK_ENGINE_API_KEY") +api_address = os.getenv("RESTACK_ENGINE_API_ADDRESS") + +connection_options = CloudConnectionOptions( + engine_id=engine_id, address=address, api_key=api_key, api_address=api_address +) +client = Restack(connection_options) diff --git a/agent_telephony/vapi/agent_vapi/src/functions/__init__.py b/agent_telephony/vapi/agent_vapi/src/functions/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/agent_telephony/vapi/agent_vapi/src/functions/llm_chat.py b/agent_telephony/vapi/agent_vapi/src/functions/llm_chat.py new file mode 100644 index 00000000..52f570c9 --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/src/functions/llm_chat.py @@ -0,0 +1,52 @@ +import os +from typing import TYPE_CHECKING, Literal + +from openai import OpenAI +from pydantic import BaseModel, Field +from restack_ai.function import function, log, stream_to_websocket + +from src.client import api_address + +if TYPE_CHECKING: + from openai.resources.chat.completions import ChatCompletionChunk, Stream + + +class Message(BaseModel): + role: Literal["system", "user", "assistant"] + content: str + + +class LlmChatInput(BaseModel): + system_content: str | None = None + model: str | None = None + messages: list[Message] = Field(default_factory=list) + stream: bool = True + + +@function.defn() +async def llm_chat(function_input: LlmChatInput) -> str: + try: + client = OpenAI( + base_url="https://ai.restack.io", api_key=os.environ.get("RESTACK_API_KEY") + ) + + if function_input.system_content: + # Insert the system message at the beginning + function_input.messages.insert( + 0, Message(role="system", content=function_input.system_content) + ) + + # Convert Message objects to dictionaries + messages_dicts = [message.model_dump() for message in function_input.messages] + # Get the streamed response from OpenAI API + response: Stream[ChatCompletionChunk] = client.chat.completions.create( + model=function_input.model or "gpt-4o-mini", + messages=messages_dicts, + stream=True, + ) + + return await stream_to_websocket(api_address=api_address, data=response) + + except Exception as e: + log.error("llm_chat function failed", error=str(e)) + raise diff --git a/agent_telephony/vapi/agent_vapi/src/functions/vapi_call.py b/agent_telephony/vapi/agent_vapi/src/functions/vapi_call.py new file mode 100644 index 00000000..377d0a3b --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/src/functions/vapi_call.py @@ -0,0 +1,33 @@ +import os +from dataclasses import dataclass + +from restack_ai.function import FunctionFailure, function, log +from vapi import AsyncVapi, Call + + +@dataclass +class VapiCallInput: + assistant_id: str + phone_number: str + + +@function.defn() +async def vapi_call(function_input: VapiCallInput) -> Call: + try: + client = AsyncVapi( + token=os.getenv("VAPI_TOKEN"), + ) + + call = await client.calls.create( + assistant_id=function_input.assistant_id, + phone_number_id=function_input.phone_number, + ) + + log.info("vapi_call: ", call=call) + + except Exception as e: + log.error("vapi_call function failed", error=str(e)) + failure_message = "vapi_call function failed: " + str(e) + raise FunctionFailure(failure_message, non_retryable=True) from e + else: + return call diff --git a/agent_telephony/vapi/agent_vapi/src/services.py b/agent_telephony/vapi/agent_vapi/src/services.py new file mode 100644 index 00000000..8ca0b99e --- /dev/null +++ b/agent_telephony/vapi/agent_vapi/src/services.py @@ -0,0 +1,36 @@ +import asyncio +import logging +import webbrowser +from pathlib import Path + +from watchfiles import run_process + +from src.agents.agent import AgentVapi +from src.client import client +from src.functions.llm_chat import llm_chat +from src.functions.vapi_call import vapi_call + + +async def main() -> None: + await client.start_service( + agents=[AgentVapi], + functions=[llm_chat, vapi_call], + ) + + +def run_services() -> None: + try: + asyncio.run(main()) + except KeyboardInterrupt: + logging.info("Service interrupted by user. Exiting gracefully.") + + +def watch_services() -> None: + watch_path = Path.cwd() + logging.info("Watching %s and its subdirectories for changes...", watch_path) + webbrowser.open("http://localhost:5233") + run_process(watch_path, recursive=True, target=run_services) + + +if __name__ == "__main__": + run_services() diff --git a/agent_video/src/functions/pipeline.py b/agent_video/src/functions/pipeline.py index f15948e2..fd2f2d3d 100644 --- a/agent_video/src/functions/pipeline.py +++ b/agent_video/src/functions/pipeline.py @@ -44,7 +44,10 @@ async def pipecat_pipeline(function_input: PipecatPipelineInput) -> str: else: agent_backend_host = engine_api_address - log.info("Using RESTACK_ENGINE_API_ADDRESS", agent_backend_host=agent_backend_host) + log.info( + "Using RESTACK_ENGINE_API_ADDRESS", + agent_backend_host=agent_backend_host, + ) agent_url = f"{agent_backend_host}/stream/agents/{function_input.agent_name}/{function_input.agent_id}/{function_input.agent_run_id}" log.info("Agent URL", agent_url=agent_url) @@ -150,7 +153,10 @@ async def run_pipeline(): try: await runner.run(task) except Exception as e: - log.error("Pipeline runner encountered an error, cancelling pipeline", error=e) + log.error( + "Pipeline runner encountered an error, cancelling pipeline", + error=e, + ) # Cancel the pipeline task if an error occurs within the pipeline runner. await task.cancel() raise e diff --git a/agent_video/src/workflows/room.py b/agent_video/src/workflows/room.py index 5c0959b2..56db9eb9 100644 --- a/agent_video/src/workflows/room.py +++ b/agent_video/src/workflows/room.py @@ -1,7 +1,13 @@ from datetime import timedelta from pydantic import BaseModel -from restack_ai.workflow import import_functions, log, workflow, workflow_info, ParentClosePolicy +from restack_ai.workflow import ( + ParentClosePolicy, + import_functions, + log, + workflow, + workflow_info, +) from src.agents.agent import AgentVideo @@ -22,7 +28,7 @@ async def run(self) -> RoomWorkflowOutput: agent=AgentVideo, agent_id=agent_id, start_to_close_timeout=timedelta(minutes=20), - parent_close_policy=ParentClosePolicy.ABANDON + parent_close_policy=ParentClosePolicy.ABANDON, ) log.info("Agent started", agent=agent) diff --git a/pyproject.toml b/pyproject.toml index 4a3fab14..5664315e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "examples-python" version = "0.0.1" -requires-python = ">=3.10" +requires-python = ">=3.10,<3.13" [dependency-groups] dev = [ From bf0d70a5a230d9a55e8b4150969cae684b8973ec Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 3 Mar 2025 01:24:14 +0100 Subject: [PATCH 2/2] cleanup readme --- agent_apis/README.md | 4 ++-- agent_chat/README.md | 4 ++-- agent_rag/README.md | 2 +- agent_stream/README.md | 2 +- agent_telephony/twilio/readme.md | 7 ++----- agent_telephony/vapi/agent_vapi/readme.md | 2 +- agent_todo/README.md | 4 ++-- agent_tool/README.md | 5 ++--- agent_video/README.md | 2 +- agent_voice/livekit/README.md | 2 +- agent_voice/pipecat/pipecat_pipeline/README.md | 3 ++- 11 files changed, 17 insertions(+), 20 deletions(-) diff --git a/agent_apis/README.md b/agent_apis/README.md index df8aff29..61143cc0 100644 --- a/agent_apis/README.md +++ b/agent_apis/README.md @@ -1,6 +1,6 @@ -# Restack AI - Agent with Third Party APIs +# Restack AI - Agent with third party APIs -This repository contains an agent with Third Party APIs +This repository contains an agent with third party APIs It demonstrates how to set up a multi steps workflow with Weather API and OpenAI. ## Prerequisites diff --git a/agent_chat/README.md b/agent_chat/README.md index b9ffd5a1..b97ce76e 100644 --- a/agent_chat/README.md +++ b/agent_chat/README.md @@ -1,6 +1,6 @@ -# Restack AI - Agent Chat +# Restack AI - Agent with chat -This repository contains a an agent chat for Restack. +This repository contains an agent with chat for Restack. It demonstrates how to set up a workflow to have a conversation with an AI agent. ## Prerequisites diff --git a/agent_rag/README.md b/agent_rag/README.md index f6379143..12b96a68 100644 --- a/agent_rag/README.md +++ b/agent_rag/README.md @@ -1,4 +1,4 @@ -# Restack AI - Agent Rag +# Restack AI - Agent with RAG This repository demonstrates how to set up a basic agent with RAG. diff --git a/agent_stream/README.md b/agent_stream/README.md index c3bd1645..feea7158 100644 --- a/agent_stream/README.md +++ b/agent_stream/README.md @@ -1,4 +1,4 @@ -# Restack AI - Agent with Stream +# Restack AI - Agent with stream Build an Agent user can chat with and return streaming response. diff --git a/agent_telephony/twilio/readme.md b/agent_telephony/twilio/readme.md index e457fa0c..edf1cfce 100644 --- a/agent_telephony/twilio/readme.md +++ b/agent_telephony/twilio/readme.md @@ -1,5 +1,5 @@ -wip# Restack AI - Agent with Telephony - Twilio +# Restack AI - Agent with telephony - Twilio Build an AI agent that do an outbound call with Twilio and can interact with in realtime with voice. @@ -7,10 +7,7 @@ Build an AI agent that do an outbound call with Twilio and can interact with in - Docker (for running Restack) - Python 3.10 or higher -- Livekit account (for WebRTC pipeline) -- Deepgram account (For speech-to-text transcription) -- ElevenLabs account (for text-to-speech and voice cloning) -- Twilio account (for outbound calls) +- Vapi account (for outbound calls) ### Trunk setup for outbound calls with Twilio diff --git a/agent_telephony/vapi/agent_vapi/readme.md b/agent_telephony/vapi/agent_vapi/readme.md index 8cab9aad..fd55ed15 100644 --- a/agent_telephony/vapi/agent_vapi/readme.md +++ b/agent_telephony/vapi/agent_vapi/readme.md @@ -1,5 +1,5 @@ -wip# Restack AI - Agent with Telephony - Vapi +# Restack AI - Agent with telephony - Vapi Build an AI agent that do an outbound call with Vapi and can interact with in realtime with voice. diff --git a/agent_todo/README.md b/agent_todo/README.md index db52834c..5415f084 100644 --- a/agent_todo/README.md +++ b/agent_todo/README.md @@ -1,6 +1,6 @@ -# Restack AI - Quickstart +# Restack AI - Agent with todo list -This repository contains a quickstart for Restack. +This repository contains an agent with todo list for Restack. It demonstrates how to set up a basic agent with tool call with a basic workflow and functions. ## Prerequisites diff --git a/agent_tool/README.md b/agent_tool/README.md index 05ee5ada..c956defb 100644 --- a/agent_tool/README.md +++ b/agent_tool/README.md @@ -1,7 +1,6 @@ -# Restack AI - Agent Tool +# Restack AI - Agent with tool calling -This repository contains a tool for an AI agent. -It demonstrates how to set up a basic agent with functions calling. +This repository demonstrates how to set up a basic agent with tool calling. Follow [the step-by-step tutorial](https://docs.restack.io/examples/projects/agent#tutorial) on how to customize the agent tool example/ diff --git a/agent_video/README.md b/agent_video/README.md index 6a80fe46..16efef96 100644 --- a/agent_video/README.md +++ b/agent_video/README.md @@ -1,4 +1,4 @@ -# Restack AI - Agent with Video +# Restack AI - Agent with video Build an AI agent that users can interact with in realtime on a video call. diff --git a/agent_voice/livekit/README.md b/agent_voice/livekit/README.md index 64cdfd71..0a9d2b8b 100644 --- a/agent_voice/livekit/README.md +++ b/agent_voice/livekit/README.md @@ -1,4 +1,4 @@ -# Restack AI - Agent with Voice +# Restack AI - Agent with voice Build an AI agent that users can interact with in realtime with voice. diff --git a/agent_voice/pipecat/pipecat_pipeline/README.md b/agent_voice/pipecat/pipecat_pipeline/README.md index f6e77f6d..4618db8d 100644 --- a/agent_voice/pipecat/pipecat_pipeline/README.md +++ b/agent_voice/pipecat/pipecat_pipeline/README.md @@ -1,2 +1,3 @@ +# Restack AI - Agent with voice -wip \ No newline at end of file +Build an AI agent that users can interact with in realtime with voice. \ No newline at end of file