Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/e2e_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:

cp "${CONFIG_FILE}" lightspeed-stack.yaml
echo "✅ Configuration loaded successfully"

- name: Select and configure run.yaml
env:
CONFIG_ENVIRONMENT: ${{ matrix.environment || 'ci' }}
Expand Down Expand Up @@ -100,7 +100,7 @@ jobs:
echo "=== Configuration Summary ==="
echo "Deployment mode: ${{ matrix.mode }}"
echo "Environment: ${{ matrix.environment }}"
echo "Source config: tests/e2e/configs/run-ci.yaml"
echo "Source config: tests/e2e/configs/run-${{ matrix.environment }}.yaml"
echo ""
echo "=== Configuration Preview ==="
echo "Providers: $(grep -c "provider_id:" run.yaml)"
Expand Down
49 changes: 21 additions & 28 deletions .github/workflows/e2e_tests_providers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,21 @@ jobs:
echo "=== Recent commits ==="
git log --oneline -5

- name: Add Azure Entra ID config block to all test configs
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same set of LCS config files is shared across all the test jobs. Thus the Entra ID config block has to be added only to the relevant test jobs.

if: matrix.environment == 'azure'
run: |
echo "Adding azure_entra_id configuration block to all test configs..."
for config in tests/e2e/configuration/*/lightspeed-stack*.yaml; do
if [ -f "$config" ]; then
echo "" >> "$config"
echo "azure_entra_id:" >> "$config"
echo " tenant_id: \${env.TENANT_ID}" >> "$config"
echo " client_id: \${env.CLIENT_ID}" >> "$config"
echo " client_secret: \${env.CLIENT_SECRET}" >> "$config"
echo "✅ Added to: $config"
fi
done

- name: Load lightspeed-stack.yaml configuration
run: |
MODE="${{ matrix.mode }}"
Expand All @@ -66,32 +81,6 @@ jobs:

cp "${CONFIG_FILE}" lightspeed-stack.yaml
echo "✅ Configuration loaded successfully"

- name: Get Azure API key (access token)
if: matrix.environment == 'azure'
id: azure_token
env:
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
TENANT_ID: ${{ secrets.TENANT_ID }}
run: |
echo "Requesting Azure API token..."
RESPONSE=$(curl -s -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=$CLIENT_ID&scope=https://cognitiveservices.azure.com/.default&client_secret=$CLIENT_SECRET&grant_type=client_credentials" \
"https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token")

echo "Response received. Extracting access_token..."
ACCESS_TOKEN=$(echo "$RESPONSE" | jq -r '.access_token')

if [ -z "$ACCESS_TOKEN" ] || [ "$ACCESS_TOKEN" == "null" ]; then
echo "❌ Failed to obtain Azure access token. Response:"
echo "$RESPONSE"
exit 1
fi

echo "✅ Successfully obtained Azure access token."
echo "AZURE_API_KEY=$ACCESS_TOKEN" >> $GITHUB_ENV

- name: Save VertexAI service account key to file
if: matrix.environment == 'vertexai'
Expand Down Expand Up @@ -198,7 +187,9 @@ jobs:
if: matrix.mode == 'server'
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
AZURE_API_KEY: ${{ env.AZURE_API_KEY }}
TENANT_ID: ${{ secrets.TENANT_ID }}
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
VERTEX_AI_LOCATION: ${{ secrets.VERTEX_AI_LOCATION }}
VERTEX_AI_PROJECT: ${{ secrets.VERTEX_AI_PROJECT }}
GOOGLE_APPLICATION_CREDENTIALS: ${{ env.GOOGLE_APPLICATION_CREDENTIALS }}
Expand Down Expand Up @@ -227,7 +218,9 @@ jobs:
if: matrix.mode == 'library'
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
AZURE_API_KEY: ${{ env.AZURE_API_KEY }}
TENANT_ID: ${{ secrets.TENANT_ID }}
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
VERTEX_AI_LOCATION: ${{ secrets.VERTEX_AI_LOCATION }}
VERTEX_AI_PROJECT: ${{ secrets.VERTEX_AI_PROJECT }}
GOOGLE_APPLICATION_CREDENTIALS: ${{ env.GOOGLE_APPLICATION_CREDENTIALS }}
Expand Down
2 changes: 1 addition & 1 deletion .tekton/lightspeed-stack-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ spec:
],
"requirements_build_files": ["requirements-build.txt"],
"binary": {
"packages": "accelerate,aiohappyeyeballs,aiohttp,aiosignal,aiosqlite,annotated-doc,annotated-types,anyio,asyncpg,attrs,autoevals,cachetools,cffi,charset-normalizer,chevron,click,cryptography,datasets,dill,distro,dnspython,durationpy,faiss-cpu,fire,frozenlist,fsspec,googleapis-common-protos,greenlet,grpcio,h11,hf-xet,httpcore,httpx,httpx-sse,huggingface-hub,idna,jinja2,jiter,joblib,jsonschema-specifications,llama-stack-client,lxml,markdown-it-py,markupsafe,mdurl,mpmath,multidict,networkx,nltk,numpy,oauthlib,opentelemetry-api,opentelemetry-exporter-otlp,opentelemetry-exporter-otlp-proto-common,opentelemetry-exporter-otlp-proto-grpc,opentelemetry-exporter-otlp-proto-http,opentelemetry-instrumentation,opentelemetry-proto,opentelemetry-sdk,opentelemetry-semantic-conventions,packaging,pandas,pillow,ply,polyleven,prompt-toolkit,propcache,proto-plus,psycopg2-binary,pyaml,pyarrow,pyasn1,pyasn1-modules,pycparser,pydantic,pydantic-core,pydantic-settings,pygments,pyjwt,python-dateutil,python-dotenv,python-multipart,pytz,pyyaml,referencing,regex,requests,requests-oauthlib,rich,rpds-py,rsa,safetensors,scikit-learn,scipy,sentence-transformers,setuptools,six,sniffio,sqlalchemy,starlette,sympy,threadpoolctl,tiktoken,tokenizers,torch,tqdm,transformers,triton,typing-extensions,typing-inspection,tzdata,urllib3,wcwidth,websocket-client,wrapt,xxhash,yarl,zipp,uv,pip,maturin",
"packages": "accelerate,aiohappyeyeballs,aiohttp,aiosignal,aiosqlite,annotated-doc,annotated-types,anyio,asyncpg,attrs,autoevals,cachetools,cffi,charset-normalizer,chevron,click,cryptography,datasets,dill,distro,dnspython,durationpy,einops,faiss-cpu,fire,frozenlist,fsspec,googleapis-common-protos,greenlet,grpcio,h11,hf-xet,httpcore,httpx,httpx-sse,huggingface-hub,idna,jinja2,jiter,joblib,jsonschema-specifications,llama-stack-client,lxml,markdown-it-py,markupsafe,mdurl,mpmath,multidict,networkx,nltk,numpy,oauthlib,opentelemetry-api,opentelemetry-exporter-otlp,opentelemetry-exporter-otlp-proto-common,opentelemetry-exporter-otlp-proto-grpc,opentelemetry-exporter-otlp-proto-http,opentelemetry-instrumentation,opentelemetry-proto,opentelemetry-sdk,opentelemetry-semantic-conventions,packaging,pandas,pillow,ply,polyleven,prompt-toolkit,propcache,proto-plus,psycopg2-binary,pyaml,pyarrow,pyasn1,pyasn1-modules,pycparser,pydantic,pydantic-core,pydantic-settings,pygments,pyjwt,python-dateutil,python-dotenv,python-multipart,pytz,pyyaml,referencing,requests,requests-oauthlib,rich,rpds-py,rsa,safetensors,scikit-learn,scipy,sentence-transformers,setuptools,six,sniffio,sqlalchemy,starlette,sympy,threadpoolctl,tiktoken,tokenizers,torch,tqdm,transformers,triton,typing-extensions,typing-inspection,tzdata,urllib3,wcwidth,websocket-client,wrapt,xxhash,yarl,zipp,uv,pip,maturin",
"os": "linux",
"arch": "x86_64,aarch64",
"py_version": "312"
Expand Down
2 changes: 1 addition & 1 deletion .tekton/lightspeed-stack-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ spec:
],
"requirements_build_files": ["requirements-build.txt"],
"binary": {
"packages": "accelerate,aiohappyeyeballs,aiohttp,aiosignal,aiosqlite,annotated-doc,annotated-types,anyio,asyncpg,attrs,autoevals,cachetools,cffi,charset-normalizer,chevron,click,cryptography,datasets,dill,distro,dnspython,durationpy,faiss-cpu,fire,frozenlist,fsspec,googleapis-common-protos,greenlet,grpcio,h11,hf-xet,httpcore,httpx,httpx-sse,huggingface-hub,idna,jinja2,jiter,joblib,jsonschema-specifications,llama-stack-client,lxml,markdown-it-py,markupsafe,mdurl,mpmath,multidict,networkx,nltk,numpy,oauthlib,opentelemetry-api,opentelemetry-exporter-otlp,opentelemetry-exporter-otlp-proto-common,opentelemetry-exporter-otlp-proto-grpc,opentelemetry-exporter-otlp-proto-http,opentelemetry-instrumentation,opentelemetry-proto,opentelemetry-sdk,opentelemetry-semantic-conventions,packaging,pandas,pillow,ply,polyleven,prompt-toolkit,propcache,proto-plus,psycopg2-binary,pyaml,pyarrow,pyasn1,pyasn1-modules,pycparser,pydantic,pydantic-core,pydantic-settings,pygments,pyjwt,python-dateutil,python-dotenv,python-multipart,pytz,pyyaml,referencing,regex,requests,requests-oauthlib,rich,rpds-py,rsa,safetensors,scikit-learn,scipy,sentence-transformers,setuptools,six,sniffio,sqlalchemy,starlette,sympy,threadpoolctl,tiktoken,tokenizers,torch,tqdm,transformers,triton,typing-extensions,typing-inspection,tzdata,urllib3,wcwidth,websocket-client,wrapt,xxhash,yarl,zipp,uv,pip,maturin",
"packages": "accelerate,aiohappyeyeballs,aiohttp,aiosignal,aiosqlite,annotated-doc,annotated-types,anyio,asyncpg,attrs,autoevals,cachetools,cffi,charset-normalizer,chevron,click,cryptography,datasets,dill,distro,dnspython,durationpy,einops,faiss-cpu,fire,frozenlist,fsspec,googleapis-common-protos,greenlet,grpcio,h11,hf-xet,httpcore,httpx,httpx-sse,huggingface-hub,idna,jinja2,jiter,joblib,jsonschema-specifications,llama-stack-client,lxml,markdown-it-py,markupsafe,mdurl,mpmath,multidict,networkx,nltk,numpy,oauthlib,opentelemetry-api,opentelemetry-exporter-otlp,opentelemetry-exporter-otlp-proto-common,opentelemetry-exporter-otlp-proto-grpc,opentelemetry-exporter-otlp-proto-http,opentelemetry-instrumentation,opentelemetry-proto,opentelemetry-sdk,opentelemetry-semantic-conventions,packaging,pandas,pillow,ply,polyleven,prompt-toolkit,propcache,proto-plus,psycopg2-binary,pyaml,pyarrow,pyasn1,pyasn1-modules,pycparser,pydantic,pydantic-core,pydantic-settings,pygments,pyjwt,python-dateutil,python-dotenv,python-multipart,pytz,pyyaml,referencing,requests,requests-oauthlib,rich,rpds-py,rsa,safetensors,scikit-learn,scipy,sentence-transformers,setuptools,six,sniffio,sqlalchemy,starlette,sympy,threadpoolctl,tiktoken,tokenizers,torch,tqdm,transformers,triton,typing-extensions,typing-inspection,tzdata,urllib3,wcwidth,websocket-client,wrapt,xxhash,yarl,zipp,uv,pip,maturin",
"os": "linux",
"arch": "x86_64,aarch64",
"py_version": "312"
Expand Down
11 changes: 10 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,17 @@ PYTHON_REGISTRY = pypi
TORCH_VERSION := 2.9.0


# Default configuration files (override with: make run CONFIG=myconfig.yaml)
CONFIG ?= lightspeed-stack.yaml
LLAMA_STACK_CONFIG ?= run.yaml

run: ## Run the service locally
uv run src/lightspeed_stack.py
uv run src/lightspeed_stack.py -c $(CONFIG)

run-llama-stack: ## Start Llama Stack with enriched config (for local service mode)
uv run src/llama_stack_configuration.py -c $(CONFIG) -i $(LLAMA_STACK_CONFIG) -o $(LLAMA_STACK_CONFIG) && \
AZURE_API_KEY=$$(grep '^AZURE_API_KEY=' .env | cut -d'=' -f2-) \
uv run llama stack run $(LLAMA_STACK_CONFIG)

test-unit: ## Run the unit tests
@echo "Running unit tests..."
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,8 @@ __Note__: Support for individual models is dependent on the specific inference p
| RHOAI (vLLM)| meta-llama/Llama-3.2-1B-Instruct | Yes | remote::vllm | [1](tests/e2e-prow/rhoai/configs/run.yaml) |
| RHAIIS (vLLM)| meta-llama/Llama-3.1-8B-Instruct | Yes | remote::vllm | [1](tests/e2e/configs/run-rhaiis.yaml) |
| RHEL AI (vLLM)| meta-llama/Llama-3.1-8B-Instruct | Yes | remote::vllm | [1](tests/e2e/configs/run-rhelai.yaml) |
| Azure | gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-chat, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o3-mini, o4-mini | Yes | remote::azure | [1](examples/azure-run.yaml) |
| Azure | o1, o1-mini | No | remote::azure | |
| Azure | gpt-5, gpt-5-mini, gpt-5-nano, gpt-4o-mini, o3-mini, o4-mini, o1| Yes | remote::azure | [1](examples/azure-run.yaml) |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Azure OpenAI available models January 2026

💡 Result:

Quick list of Azure OpenAI / Azure AI Foundry models available (status as of Jan 15, 2026):

  • OpenAI GPT family: gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini (including gpt-4o-mini-audio and gpt-4o-mini-realtime). (learn.microsoft.com)
  • GPT-5 family (gpt-5, gpt-5-mini, gpt-5-nano) — GA entries listed on Microsoft docs. (learn.microsoft.com)
  • O-series reasoning models: o1, o3, o3-mini, o3-pro, o3-deep-research, o4-mini. (learn.microsoft.com)
  • Code/codex: codex-mini. (learn.microsoft.com)
  • Real-time / audio-focused variants and previews (audio/real-time GPT-4o mini models). (learn.microsoft.com)
  • Third‑party / partner models hosted via Azure AI Foundry (examples: xAI Grok, DeepSeek R1 and other marketplace/Foundry models offered on Azure). (theverge.com)

Sources: Microsoft Azure / Azure OpenAI documentation and announcements, plus Azure/Azure AI Foundry news. See Microsoft docs for exact region/version availability and retirement schedule. (learn.microsoft.com)

Would you like a region-by-region availability table or links to the specific model pages?

Citations:


🏁 Script executed:

# Check the actual line in README.md to confirm formatting
git ls-files README.md && sed -n '206p' README.md

Repository: lightspeed-core/lightspeed-stack

Length of output: 273


Fix formatting issue: add space before closing pipe.

The line is missing a space between o1 and the closing pipe character.

Formatting fix
-| Azure    | gpt-5, gpt-5-mini, gpt-5-nano, gpt-4o-mini, o3-mini, o4-mini, o1| Yes          | remote::azure  | [1](examples/azure-run.yaml)                                               |
+| Azure    | gpt-5, gpt-5-mini, gpt-5-nano, gpt-4o-mini, o3-mini, o4-mini, o1 | Yes          | remote::azure  | [1](examples/azure-run.yaml)                                               |

All listed model names are valid Azure OpenAI models as of January 2026 (gpt-5 family, gpt-4o-mini, and o-series reasoning models including o4-mini are confirmed available per Microsoft Azure documentation).

🤖 Prompt for AI Agents
In `@README.md` at line 206, The Markdown table row has a missing space before the
closing pipe after the model list; update the table string containing "gpt-5,
gpt-5-mini, gpt-5-nano, gpt-4o-mini, o3-mini, o4-mini, o1" to insert a space
after "o1" so it becomes "o1 " before the final pipe, ensuring the table cell
formats correctly.

| Azure | gpt-5-chat, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o1-mini | No or limited | remote::azure | |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's check the actual content around line 207 in README.md
cd / && find . -name "README.md" -type f 2>/dev/null | head -5

Repository: lightspeed-core/lightspeed-stack

Length of output: 297


🏁 Script executed:

# Search for README.md in common locations
fd -name "README.md" -type f | head -5

Repository: lightspeed-core/lightspeed-stack

Length of output: 306


🏁 Script executed:

# List files to understand repository structure
git ls-files | head -20

Repository: lightspeed-core/lightspeed-stack

Length of output: 782


🌐 Web query:

Azure OpenAI available models GPT-4 GPT-5 model names 2025

💡 Result:

Here are the Azure OpenAI GPT‑4 and GPT‑5 model names (status as of Jan 15, 2026):

  • GPT‑4 family (available variants): gpt-4, gpt-4-32k, gpt-4-turbo / gpt-4-1106 (turbo), gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano. [1][2]

  • GPT‑5 family (preview/rolling availability): gpt-5, gpt-5-chat (listed as Preview in Azure docs). [2][3]

Sources: Azure OpenAI models and versions (Microsoft docs) and reporting on GPT‑5 availability. [1] Microsoft Learn — Models (Azure OpenAI). [2] Microsoft Learn — Model retirements / availability. [3] Coverage of Microsoft integrating GPT‑5 into Copilot / Azure.


🌐 Web query:

Azure OpenAI API models list gpt-4.1 gpt-5-chat

💡 Result:

Yes — Azure (Azure OpenAI / Azure AI Foundry) offers the GPT-4.1 family and GPT-5 (including gpt-5-chat). Examples in Microsoft’s catalog and announcements include gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, and gpt-5 / gpt-5-chat (availability varies by region and deployment). [1][2][3]

Sources:

  • Azure announcement for GPT‑4.1. [1]
  • Azure AI model catalog entry for gpt‑4.1. [2]
  • Microsoft Learn / Azure AI Foundry model availability list (shows gpt‑5 and gpt‑5‑chat entries). [3]

🏁 Script executed:

# Find README.md in the repository root
fd -name "README.md" -type f --max-depth 1

Repository: lightspeed-core/lightspeed-stack

Length of output: 306


🏁 Script executed:

# Look at the file structure to locate the main README
ls -la | grep -i readme

Repository: lightspeed-core/lightspeed-stack

Length of output: 137


🏁 Script executed:

# Check if there's a README.md in the root
cat README.md 2>/dev/null | wc -l

Repository: lightspeed-core/lightspeed-stack

Length of output: 80


🏁 Script executed:

# If file exists, get lines around 207
if [ -f README.md ]; then
  echo "=== Context around line 207 (lines 200-215) ===" 
  sed -n '200,215p' README.md
fi

Repository: lightspeed-core/lightspeed-stack

Length of output: 2291


🏁 Script executed:

# Also check the exact content and spacing on line 207
if [ -f README.md ]; then
  echo "=== Line 207 with visible spaces ===" 
  sed -n '207p' README.md | cat -A
fi

Repository: lightspeed-core/lightspeed-stack

Length of output: 231


Fix spacing and clarify "No or limited" status; remove incorrect model name claims.

This line has formatting and clarity issues that need addressing:

  1. Formatting: Extra space before gpt-5-chat and o1-mini. These should align with other table entries.

  2. Ambiguous status: "No or limited" is vague. Clarify whether support is unavailable or has specific limitations for these particular models.

  3. Missing example: The row above includes example configuration files; this row should too for consistency.

Suggested fix
-| Azure    |  gpt-5-chat, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano,  o1-mini | No or limited         | remote::azure  |  |
+| Azure    | gpt-5-chat, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o1-mini | Limited[^2]     | remote::azure  | [1](examples/azure-run.yaml) |

Then add a footnote:

+[^2]: Tool calling support varies by model; some features may be unavailable or in preview.

| VertexAI | google/gemini-2.0-flash, google/gemini-2.5-flash, google/gemini-2.5-pro [^1] | Yes | remote::vertexai | [1](examples/vertexai-run.yaml) |
| WatsonX | meta-llama/llama-3-3-70b-instruct | Yes | remote::watsonx | [1](examples/watsonx-run.yaml) |

Expand Down
7 changes: 5 additions & 2 deletions docker-compose-library.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ services:
- ${GCP_KEYS_PATH:-./tmp/.gcp-keys-dummy}:/opt/app-root/.gcp-keys:ro
- ./tests/e2e/rag:/opt/app-root/src/.llama/storage/rag:Z
environment:
# LLM Provider API Keys
- BRAVE_SEARCH_API_KEY=${BRAVE_SEARCH_API_KEY:-}
- TAVILY_SEARCH_API_KEY=${TAVILY_SEARCH_API_KEY:-}
# OpenAI
- OPENAI_API_KEY=${OPENAI_API_KEY}
- E2E_OPENAI_MODEL=${E2E_OPENAI_MODEL:-gpt-4o-mini}
# Azure
- AZURE_API_KEY=${AZURE_API_KEY:-}
# Azure Entra ID credentials (AZURE_API_KEY is obtained dynamically in Python)
- TENANT_ID=${TENANT_ID:-}
- CLIENT_ID=${CLIENT_ID:-}
- CLIENT_SECRET=${CLIENT_SECRET:-}
# RHAIIS
- RHAIIS_URL=${RHAIIS_URL:-}
- RHAIIS_API_KEY=${RHAIIS_API_KEY:-}
Expand Down
14 changes: 10 additions & 4 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@ services:
- ./run.yaml:/opt/app-root/run.yaml:Z
- ${GCP_KEYS_PATH:-./tmp/.gcp-keys-dummy}:/opt/app-root/.gcp-keys:ro
- ./tests/e2e/rag:/opt/app-root/src/.llama/storage/rag:Z
- ./lightspeed-stack.yaml:/opt/app-root/lightspeed-stack.yaml:z
environment:
- BRAVE_SEARCH_API_KEY=${BRAVE_SEARCH_API_KEY:-}
- TAVILY_SEARCH_API_KEY=${TAVILY_SEARCH_API_KEY:-}
# OpenAI
- OPENAI_API_KEY=${OPENAI_API_KEY}
- E2E_OPENAI_MODEL=${E2E_OPENAI_MODEL:-gpt-4o-mini}
# Azure
- AZURE_API_KEY=${AZURE_API_KEY}
# Azure Entra ID credentials (AZURE_API_KEY is passed via provider_data at request time)
- TENANT_ID=${TENANT_ID:-}
- CLIENT_ID=${CLIENT_ID:-}
- CLIENT_SECRET=${CLIENT_SECRET:-}
# RHAIIS
- RHAIIS_URL=${RHAIIS_URL}
- RHAIIS_API_KEY=${RHAIIS_API_KEY}
Expand Down Expand Up @@ -56,10 +59,13 @@ services:
ports:
- "8080:8080"
volumes:
- ./lightspeed-stack.yaml:/app-root/lightspeed-stack.yaml:Z
- ./lightspeed-stack.yaml:/app-root/lightspeed-stack.yaml:z
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- AZURE_API_KEY=${AZURE_API_KEY}
# Azure Entra ID credentials (AZURE_API_KEY is obtained dynamically)
- TENANT_ID=${TENANT_ID:-}
- CLIENT_ID=${CLIENT_ID:-}
- CLIENT_SECRET=${CLIENT_SECRET:-}
depends_on:
llama-stack:
condition: service_healthy
Expand Down
Loading
Loading