Skip to content

Commit 4286597

Browse files
authored
Merge pull request #70 from daily-co/move-src-example-to-examples
move src/examples to examples
2 parents 2f4e31d + a573277 commit 4286597

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+149
-37
lines changed

README.md

+7-8

docs/README.md

+1-1

docs/examples/01-say-one-thing.md

+1-1

docs/examples/README.md

+1-1

src/examples/foundational/01-say-one-thing.py examples/foundational/01-say-one-thing.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
from dailyai.services.daily_transport_service import DailyTransportService
99
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
1010

11-
from examples.support.runner import configure
11+
from runner import configure
12+
13+
from dotenv import load_dotenv
14+
load_dotenv()
1215

1316
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
1417
logger = logging.getLogger("dailyai")

src/examples/foundational/02-llm-say-one-thing.py examples/foundational/02-llm-say-one-thing.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
1111
from dailyai.services.open_ai_services import OpenAILLMService
1212

13-
from examples.support.runner import configure
13+
from runner import configure
14+
15+
from dotenv import load_dotenv
16+
load_dotenv()
1417

1518
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
1619
logger = logging.getLogger("dailyai")

src/examples/foundational/03-still-frame.py examples/foundational/03-still-frame.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
from dailyai.services.daily_transport_service import DailyTransportService
99
from dailyai.services.fal_ai_services import FalImageGenService
1010

11-
from examples.support.runner import configure
11+
from runner import configure
12+
13+
from dotenv import load_dotenv
14+
load_dotenv()
1215

1316
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
1417
logger = logging.getLogger("dailyai")

src/examples/foundational/04-utterance-and-speech.py examples/foundational/04-utterance-and-speech.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111
from dailyai.services.deepgram_ai_services import DeepgramTTSService
1212
from dailyai.pipeline.frames import EndFrame, EndPipeFrame, LLMMessagesQueueFrame, TextFrame
1313
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
14-
from examples.support.runner import configure
14+
15+
from runner import configure
16+
17+
from dotenv import load_dotenv
18+
load_dotenv()
1519

1620
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
1721
logger = logging.getLogger("dailyai")

src/examples/foundational/05-sync-speech-and-image.py examples/foundational/05-sync-speech-and-image.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@
2929
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
3030
from dailyai.services.fal_ai_services import FalImageGenService
3131

32-
from examples.support.runner import configure
32+
from runner import configure
33+
34+
from dotenv import load_dotenv
35+
load_dotenv()
3336

3437
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
3538
logger = logging.getLogger("dailyai")

src/examples/foundational/06-listen-and-respond.py examples/foundational/06-listen-and-respond.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
LLMAssistantContextAggregator,
1414
LLMUserContextAggregator,
1515
)
16-
from examples.support.runner import configure
16+
from runner import configure
17+
18+
from dotenv import load_dotenv
19+
load_dotenv()
1720

1821
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
1922
logger = logging.getLogger("dailyai")

src/examples/foundational/06a-image-sync.py examples/foundational/06a-image-sync.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919
from dailyai.services.open_ai_services import OpenAILLMService
2020
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
2121
from dailyai.services.fal_ai_services import FalImageGenService
22-
from examples.support.runner import configure
22+
23+
from runner import configure
24+
25+
from dotenv import load_dotenv
26+
load_dotenv()
2327

2428
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
2529
logger = logging.getLogger("dailyai")

src/examples/foundational/07-interruptible.py examples/foundational/07-interruptible.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@
1414
from dailyai.services.daily_transport_service import DailyTransportService
1515
from dailyai.services.open_ai_services import OpenAILLMService
1616
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
17-
from examples.support.runner import configure
17+
18+
from runner import configure
19+
20+
from dotenv import load_dotenv
21+
load_dotenv()
1822

1923
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
2024
logger = logging.getLogger("dailyai")

src/examples/foundational/08-bots-arguing.py examples/foundational/08-bots-arguing.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
1212
from dailyai.services.fal_ai_services import FalImageGenService
1313
from dailyai.pipeline.frames import AudioFrame, EndFrame, ImageFrame, LLMMessagesQueueFrame, TextFrame
14-
from examples.support.runner import configure
14+
15+
from runner import configure
16+
17+
from dotenv import load_dotenv
18+
load_dotenv()
1519

1620
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
1721
logger = logging.getLogger("dailyai")

src/examples/foundational/10-wake-word.py examples/foundational/10-wake-word.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121
TranscriptionQueueFrame,
2222
)
2323
from dailyai.services.ai_services import AIService
24-
from examples.support.runner import configure
24+
25+
from runner import configure
26+
27+
from dotenv import load_dotenv
28+
load_dotenv()
2529

2630
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
2731
logger = logging.getLogger("dailyai")

src/examples/foundational/11-sound-effects.py examples/foundational/11-sound-effects.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
)
2222
from typing import AsyncGenerator
2323

24-
from examples.support.runner import configure
24+
from runner import configure
25+
26+
from dotenv import load_dotenv
27+
load_dotenv()
2528

2629
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
2730
logger = logging.getLogger("dailyai")

src/examples/foundational/13-whisper-transcription.py examples/foundational/13-whisper-transcription.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33

44
from dailyai.services.daily_transport_service import DailyTransportService
55
from dailyai.services.whisper_ai_services import WhisperSTTService
6-
from examples.support.runner import configure
6+
7+
from runner import configure
8+
9+
from dotenv import load_dotenv
10+
load_dotenv()
711

812
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
913
logger = logging.getLogger("dailyai")

src/examples/support/runner.py examples/foundational/runner.py

-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
import urllib
55
import requests
66

7-
from dotenv import load_dotenv
8-
load_dotenv()
9-
107

118
def configure():
129
parser = argparse.ArgumentParser(description="Daily AI SDK Bot Sample")
File renamed without changes.

src/examples/internal/11a-dial-out.py examples/internal/11a-dial-out.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
from dailyai.pipeline.frames import Frame, AudioFrame, LLMResponseEndFrame, LLMMessagesQueueFrame
1111
from typing import AsyncGenerator
1212

13-
from examples.support.runner import configure
13+
from runner import configure
14+
15+
from dotenv import load_dotenv
16+
load_dotenv()
1417

1518
sounds = {}
1619
sound_files = [
File renamed without changes.

src/examples/server/auth.py examples/server/auth.py

-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import time
22
import urllib
33

4-
from dotenv import load_dotenv
54
import requests
65
from flask import jsonify
76
import os
87

9-
load_dotenv()
10-
118

129
def get_meeting_token(room_name, daily_api_key, token_expiry):
1310
api_path = os.getenv('DAILY_API_PATH') or 'https://api.daily.co/v1'

src/examples/server/daily-bot-manager.py examples/server/daily-bot-manager.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55

66
from flask import Flask, jsonify, request, redirect
77
from flask_cors import CORS
8-
from examples.server.auth import get_meeting_token
98

10-
from dotenv import load_dotenv
9+
from auth import get_meeting_token
1110

11+
from dotenv import load_dotenv
1212
load_dotenv()
1313

1414
app = Flask(__name__)
@@ -95,7 +95,7 @@ def start_bot(bot_path, args=None):
9595

9696
@app.route("/spin-up-kitty", methods=["GET", "POST"])
9797
def spin_up_kitty():
98-
return start_bot("./src/examples/foundational/10-wake-word.py")
98+
return start_bot("./examples/foundational/10-wake-word.py")
9999

100100

101101
@app.route("/healthz")

src/examples/starter-apps/chatbot.py examples/starter-apps/chatbot.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
from dailyai.services.daily_transport_service import DailyTransportService
2424
from dailyai.services.open_ai_services import OpenAILLMService
2525
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
26-
from examples.support.runner import configure
26+
27+
from runner import configure
28+
29+
from dotenv import load_dotenv
30+
load_dotenv()
2731

2832
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
2933
logger = logging.getLogger("dailyai")

src/examples/starter-apps/patient-intake.py examples/starter-apps/patient-intake.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from dailyai.services.open_ai_services import OpenAILLMService
2121
from dailyai.services.deepgram_ai_services import DeepgramTTSService
2222
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
23-
from examples.support.runner import configure
2423
from dailyai.pipeline.frames import (
2524
OpenAILLMContextFrame,
2625
TranscriptionQueueFrame,
@@ -36,6 +35,11 @@
3635
ChatCompletionToolParam,
3736
)
3837

38+
from runner import configure
39+
40+
from dotenv import load_dotenv
41+
load_dotenv()
42+
3943
logging.basicConfig(format="%(levelno)s %(asctime)s %(message)s")
4044
logger = logging.getLogger("dailyai")
4145
logger.setLevel(logging.DEBUG)

examples/starter-apps/runner.py

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import argparse
2+
import os
3+
import time
4+
import urllib
5+
import requests
6+
7+
8+
def configure():
9+
parser = argparse.ArgumentParser(description="Daily AI SDK Bot Sample")
10+
parser.add_argument(
11+
"-u",
12+
"--url",
13+
type=str,
14+
required=False,
15+
help="URL of the Daily room to join")
16+
parser.add_argument(
17+
"-k",
18+
"--apikey",
19+
type=str,
20+
required=False,
21+
help="Daily API Key (needed to create an owner token for the room)",
22+
)
23+
24+
args, unknown = parser.parse_known_args()
25+
26+
url = args.url or os.getenv("DAILY_SAMPLE_ROOM_URL")
27+
key = args.apikey or os.getenv("DAILY_API_KEY")
28+
29+
if not url:
30+
raise Exception(
31+
"No Daily room specified. use the -u/--url option from the command line, or set DAILY_SAMPLE_ROOM_URL in your environment to specify a Daily room URL.")
32+
33+
if not key:
34+
raise Exception("No Daily API key specified. use the -k/--apikey option from the command line, or set DAILY_API_KEY in your environment to specify a Daily API key, available from https://dashboard.daily.co/developers.")
35+
36+
# Create a meeting token for the given room with an expiration 1 hour in
37+
# the future.
38+
room_name: str = urllib.parse.urlparse(url).path[1:]
39+
expiration: float = time.time() + 60 * 60
40+
41+
res: requests.Response = requests.post(
42+
f"https://api.daily.co/v1/meeting-tokens",
43+
headers={
44+
"Authorization": f"Bearer {key}"},
45+
json={
46+
"properties": {
47+
"room_name": room_name,
48+
"is_owner": True,
49+
"exp": expiration}},
50+
)
51+
52+
if res.status_code != 200:
53+
raise Exception(
54+
f"Failed to create meeting token: {res.status_code} {res.text}")
55+
56+
token: str = res.json()["token"]
57+
58+
return (url, token)

src/examples/starter-apps/storybot.py examples/starter-apps/storybot.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
UserResponseAggregator,
2626
LLMResponseAggregator,
2727
)
28-
from examples.support.runner import configure
2928
from dailyai.pipeline.frames import (
3029
EndPipeFrame,
3130
LLMMessagesQueueFrame,
@@ -43,6 +42,11 @@
4342
)
4443
from dailyai.services.ai_services import FrameLogger, AIService
4544

45+
from runner import configure
46+
47+
from dotenv import load_dotenv
48+
load_dotenv()
49+
4650
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
4751
logger = logging.getLogger("dailyai")
4852
logger.setLevel(logging.DEBUG)

src/examples/starter-apps/translator.py examples/starter-apps/translator.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
from dailyai.services.azure_ai_services import AzureTTSService
1919
from dailyai.services.open_ai_services import OpenAILLMService
2020
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
21-
from examples.support.runner import configure
21+
22+
from runner import configure
23+
24+
from dotenv import load_dotenv
25+
load_dotenv()
2226

2327
logging.basicConfig(format=f"%(levelno)s %(asctime)s %(message)s")
2428
logger = logging.getLogger("dailyai")

0 commit comments

Comments
 (0)