* Fix: Fix Setup lint GitHub action #30 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Remove branch filter on PR and remove on push Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Remove on mergequeue Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: Add tox.ini file Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Return on push Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: tox -e ruff Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Ignore .ruff_cache Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: Update tox file Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: Add mypy.ini Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Ignore if line is too long Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: Set the ignore in command instead Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: W503 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: 541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: W503 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: Ignore F401, unused imports as __init__ files has them Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Return linebreak as tox -e ruff yields that Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Ignore W503 as ruff introduces it Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F841 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: E203 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: W293 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: W291 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: E203 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: E203 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: W291 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F811 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F841 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F811 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F841 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F811 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: W291 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F811 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Ruff want's the space before : Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Ignore space before : Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: E291 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: Add dev-requirements.txt Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: Correct python version Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: Ref dev-requirements.txt Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: Add mypy cache dir Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: Update mypy version Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Fix: Exclude cookbook and quicstarts Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Remove unused import Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: Add specific sub module ignore on error for future smaller fixing Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Reintroduce branches filter on push and pull_request Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * chore: Ruff Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: ruff formatting * Chore: F541 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: E401 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: Ruff Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: F811 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: F841 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: Ruff Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: E711 Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> * Chore: ruff Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> --------- Signed-off-by: Casper Guldbech Nielsen <scni@novonordisk.com> |
||
---|---|---|
.. | ||
README.md | ||
requirements.txt | ||
text_to_speech.py |
README.md
Elevenlabs LLM calls with Dapr Agents
This quickstart demonstrates how to use Dapr Agents' LLM capabilities to interact with language models and generate both free-form text and structured data. You'll learn how to make basic calls to LLMs and how to extract structured information in a type-safe manner.
Prerequisites
- Python 3.10 (recommended)
- pip package manager
- Elevenlabs API key
Environment Setup
# Create a virtual environment
python3.10 -m venv .venv
# Activate the virtual environment
# On Windows:
.venv\Scripts\activate
# On macOS/Linux:
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
Configuration
Create a .env
file in the project root:
ELEVENLABS_API_KEY=your_api_key_here
Replace your_api_key_here
with your actual Elevenlabs API key.
Examples
Audio
You can use the ElevenLabsSpeechClient
in dapr-agents
for text to speech capabilities of the Elevenlabs Audio API.
1. Run the text to speech example:
python text_to_speech.py
Key Concepts
- ElevenLabsSpeechClient: The interface for interacting with Elevenlabs' language models
- create_speech(): The primary method for text to speech capabilities
Dapr Integration
While these examples don't explicitly use Dapr's distributed capabilities, Dapr Agents provides:
- Unified API: Consistent interfaces for different LLM providers
- Type Safety: Structured data extraction and validation
- Integration Path: Foundation for building more complex, distributed LLM applications
In later quickstarts, you'll see how these LLM interactions integrate with Dapr's building blocks.
Troubleshooting
- Authentication Errors: If you encounter authentication failures, check your Elevenlabs API key in the
.env
file - Structured Output Errors: If the model fails to produce valid structured data, try refining your model or prompt
- Module Not Found: Ensure you've activated your virtual environment and installed the requirements
Next Steps
After completing these examples, move on to the Agent Tool Call quickstart to learn how to build agents that can use tools to interact with external systems.