and fixing anthropic demos
This commit is contained in:
@@ -62,7 +62,7 @@ async def main():
|
|||||||
)
|
)
|
||||||
|
|
||||||
llm = AnthropicLLMService(
|
llm = AnthropicLLMService(
|
||||||
api_key=os.getenv("OPENAI_API_KEY"),
|
api_key=os.getenv("ANTHROPIC_API_KEY"),
|
||||||
model="claude-3-5-sonnet-20240620"
|
model="claude-3-5-sonnet-20240620"
|
||||||
)
|
)
|
||||||
llm.register_function("get_weather", get_weather)
|
llm.register_function("get_weather", get_weather)
|
||||||
@@ -86,10 +86,12 @@ async def main():
|
|||||||
|
|
||||||
# todo: test with very short initial user message
|
# todo: test with very short initial user message
|
||||||
|
|
||||||
messages = [{"role": "system",
|
# messages = [{"role": "system",
|
||||||
"content": "You are a helpful assistant who can report the weather in any location in the universe. Respond concisely. Your response will be turned into speech so use only simple words and punctuation."},
|
# "content": "You are a helpful assistant who can report the weather in any location in the universe. Respond concisely. Your response will be turned into speech so use only simple words and punctuation."},
|
||||||
{"role": "user",
|
# {"role": "user",
|
||||||
"content": " Start the conversation by introducing yourself."}]
|
# "content": " Start the conversation by introducing yourself."}]
|
||||||
|
|
||||||
|
messages = [{"role": "user", "content": "Say 'hello' to start the conversation."}]
|
||||||
|
|
||||||
context = OpenAILLMContext(messages, tools)
|
context = OpenAILLMContext(messages, tools)
|
||||||
context_aggregator = llm.create_context_aggregator(context)
|
context_aggregator = llm.create_context_aggregator(context)
|
||||||
@@ -109,7 +111,7 @@ async def main():
|
|||||||
async def on_first_participant_joined(transport, participant):
|
async def on_first_participant_joined(transport, participant):
|
||||||
transport.capture_participant_transcription(participant["id"])
|
transport.capture_participant_transcription(participant["id"])
|
||||||
# Kick off the conversation.
|
# Kick off the conversation.
|
||||||
await task.queue_frames([LLMMessagesFrame(messages)])
|
await task.queue_frames([context_aggregator.user().get_context_frame()])
|
||||||
|
|
||||||
runner = PipelineRunner()
|
runner = PipelineRunner()
|
||||||
|
|
||||||
|
|||||||
@@ -137,7 +137,8 @@ If you need to use a tool, simply use the tool. Do not tell the user the tool yo
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
messages = [{"role": "system",
|
messages = [{"role": "system",
|
||||||
"content": system_prompt,
|
"content": system_prompt},
|
||||||
|
{"role": "user",
|
||||||
"content": "Start the conversation by introducing yourself."}]
|
"content": "Start the conversation by introducing yourself."}]
|
||||||
|
|
||||||
context = OpenAILLMContext(messages, tools)
|
context = OpenAILLMContext(messages, tools)
|
||||||
@@ -161,7 +162,7 @@ If you need to use a tool, simply use the tool. Do not tell the user the tool yo
|
|||||||
transport.capture_participant_transcription(video_participant_id)
|
transport.capture_participant_transcription(video_participant_id)
|
||||||
transport.capture_participant_video(video_participant_id, framerate=0)
|
transport.capture_participant_video(video_participant_id, framerate=0)
|
||||||
# Kick off the conversation.
|
# Kick off the conversation.
|
||||||
await task.queue_frames([LLMMessagesFrame(messages)])
|
await task.queue_frames([context_aggregator.user().get_context_frame()])
|
||||||
|
|
||||||
runner = PipelineRunner()
|
runner = PipelineRunner()
|
||||||
await runner.run(task)
|
await runner.run(task)
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ class AnthropicLLMService(LLMService):
|
|||||||
await self.start_ttfb_metrics()
|
await self.start_ttfb_metrics()
|
||||||
|
|
||||||
response = await self._client.messages.create(
|
response = await self._client.messages.create(
|
||||||
system=context.system,
|
system=context.system or [],
|
||||||
messages=messages,
|
messages=messages,
|
||||||
tools=context.tools or [],
|
tools=context.tools or [],
|
||||||
model=self._model,
|
model=self._model,
|
||||||
@@ -255,7 +255,9 @@ class AnthropicLLMContext(OpenAILLMContext):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_messages(cls, messages: List[dict]) -> "AnthropicLLMContext":
|
def from_messages(cls, messages: List[dict]) -> "AnthropicLLMContext":
|
||||||
return cls(messages=messages)
|
self = cls(messages=messages)
|
||||||
|
self._restructure_from_openai_messages()
|
||||||
|
return self
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_image_frame(cls, frame: VisionImageRawFrame) -> "AnthropicLLMContext":
|
def from_image_frame(cls, frame: VisionImageRawFrame) -> "AnthropicLLMContext":
|
||||||
|
|||||||
Reference in New Issue
Block a user