Update function calling examples to push a TextFrame in the start_callback
This commit is contained in:
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -29,11 +30,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineTask
|
from pipecat.pipeline.task import PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ from openai.types.chat import ChatCompletionToolParam
|
|||||||
from runner import configure
|
from runner import configure
|
||||||
|
|
||||||
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
|
from pipecat.frames.frames import TextFrame
|
||||||
from pipecat.pipeline.pipeline import Pipeline
|
from pipecat.pipeline.pipeline import Pipeline
|
||||||
from pipecat.pipeline.runner import PipelineRunner
|
from pipecat.pipeline.runner import PipelineRunner
|
||||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||||
@@ -30,11 +31,8 @@ logger.add(sys.stderr, level="DEBUG")
|
|||||||
|
|
||||||
|
|
||||||
async def start_fetch_weather(function_name, llm, context):
|
async def start_fetch_weather(function_name, llm, context):
|
||||||
# note: we can't push a frame to the LLM here. the bot
|
"""Push a frame to the LLM; this is handy when the LLM response might take a while."""
|
||||||
# can interrupt itself and/or cause audio overlapping glitches.
|
await llm.push_frame(TextFrame("Let me check on that."))
|
||||||
# possible question for Aleix and Chad about what the right way
|
|
||||||
# to trigger speech is, now, with the new queues/async/sync refactors.
|
|
||||||
# await llm.push_frame(TextFrame("Let me check on that."))
|
|
||||||
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
logger.debug(f"Starting fetch_weather_from_api with function_name: {function_name}")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user