Skip to content

Commit

Permalink
added fireworks adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
chadbailey59 committed Apr 11, 2024
1 parent db05a9b commit 0e85c4b
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 5 deletions.
10 changes: 5 additions & 5 deletions examples/starter-apps/patient-intake.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from dailyai.services.open_ai_services import OpenAILLMService
# from dailyai.services.deepgram_ai_services import DeepgramTTSService
from dailyai.services.elevenlabs_ai_service import ElevenLabsTTSService
from dailyai.services.fireworks_ai_services import FireworksLLMService
from dailyai.pipeline.frames import (
Frame,
LLMFunctionCallFrame,
Expand Down Expand Up @@ -249,8 +250,7 @@ async def process_frame(self, frame: Frame) -> AsyncGenerator[Frame, None]:
print(f"--> {pretty_json}\n")
if frame.function_name not in self._functions:
raise Exception(
f"The LLM tried to call a function named {frame.function_name}, which isn't in the list of known functions. Please check your prompt and/or self._functions."
)
f"Unknown function.")
fn = getattr(self, frame.function_name)
result = fn(json.loads(frame.arguments))

Expand Down Expand Up @@ -306,9 +306,9 @@ async def main(room_url: str, token):

messages = []

llm = OpenAILLMService(
api_key=os.getenv("OPENAI_API_KEY"),
model="gpt-4-1106-preview",
llm = FireworksLLMService(
api_key=os.getenv("FIREWORKS_API_KEY"),
model="accounts/fireworks/models/firefunction-v1"
)
# tts = DeepgramTTSService(
# aiohttp_session=session,
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ fal = [ "fal~=0.12.0" ]
local = [ "pyaudio~=0.2.0" ]
moondream = [ "einops~=0.7.0", "timm~=0.9.0", "transformers~=4.39.0" ]
openai = [ "openai~=1.14.0" ]
fireworks = [ "openai~=1.14.0" ]
playht = [ "pyht~=0.0.26" ]
silero = [ "torch~=2.2.0", "torchaudio~=2.2.0" ]
websocket = [ "websockets~=12.0" ]
Expand Down
18 changes: 18 additions & 0 deletions src/dailyai/services/fireworks_ai_services.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import os

from dailyai.services.openai_api_llm_service import BaseOpenAILLMService


try:
from openai import AsyncOpenAI
except ModuleNotFoundError as e:
print(f"Exception: {e}")
print(
"In order to use Fireworks, you need to `pip install dailyai[fireworks]`. Also, set the `FIREWORKS_API_KEY` environment variable.")
raise Exception(f"Missing module: {e}")


class FireworksLLMService(BaseOpenAILLMService):
def __init__(self, model="accounts/fireworks/models/firefunction-v1", *args, **kwargs):
kwargs["base_url"] = "https://api.fireworks.ai/inference/v1"
super().__init__(model, *args, **kwargs)

0 comments on commit 0e85c4b

Please sign in to comment.