Add LLMRunFrame to trigger an LLM response, replacing context_aggregator.user().get_context_frame()
This commit is contained in:
41
CHANGELOG.md
41
CHANGELOG.md
@@ -9,6 +9,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Added
|
||||
|
||||
- Added a new `LLMRunFrame` to trigger an LLM response:
|
||||
|
||||
```python
|
||||
await task.queue_frames([LLMRunFrame()])
|
||||
```
|
||||
|
||||
This replaces `OpenAILLMContextFrame`, which you’d previously typically use
|
||||
like this:
|
||||
|
||||
```python
|
||||
await task.queue_frames([context_aggregator.user().get_context_frame()])
|
||||
```
|
||||
|
||||
Use this way of kicking off your conversation when you’ve already initialized
|
||||
your context and are simply instructing the bot when to go:
|
||||
|
||||
```python
|
||||
context = OpenAILLMContext(messages, tools)
|
||||
context_aggregator = llm.create_context_aggregator(context)
|
||||
|
||||
# ...
|
||||
|
||||
@transport.event_handler("on_client_connected")
|
||||
async def on_client_connected(transport, client):
|
||||
# Kick off the conversation.
|
||||
await task.queue_frames([LLMRunFrame()])
|
||||
```
|
||||
|
||||
Note that if you want to add new messages when kicking off the conversation,
|
||||
you could use `LLMMessagesAppendFrame` with `run_llm=True` instead:
|
||||
|
||||
```python
|
||||
@transport.event_handler("on_client_connected")
|
||||
async def on_client_connected(transport, client):
|
||||
# Kick off the conversation.
|
||||
await task.queue_frames([LLMMessagesAppendFrame(new_messages, run_llm=True)])
|
||||
```
|
||||
|
||||
In the rare case you don’t have a context aggregator in your pipeline, then
|
||||
you may continue using a context frame.
|
||||
|
||||
- Added support for switching between audio+text to text-only modes within the
|
||||
same pipeline. This is done by pushing
|
||||
`LLMConfigureOutputFrame(skip_tts=True)` to enter text-only mode, and
|
||||
|
||||
Reference in New Issue
Block a user