Skip to content

Commit 4caf532

Browse files
committed
integrate openrouter calls
1 parent 225b941 commit 4caf532

5 files changed

Lines changed: 33 additions & 14 deletions

File tree

.github/workflows/production-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
environment: "production"
3232
version-bump: ${{ inputs.version-bump }}
3333
branch: ${{ inputs.branch }}
34-
deployed-environment-variables: '[\"OPENAI_API_KEY\",\"OPENAI_MODEL\",\"GOOGLE_AI_API_KEY\",\"GOOGLE_AI_MODEL\"]'
34+
deployed-environment-variables: '[\"OPENAI_API_KEY\",\"OPENAI_MODEL\",\"GOOGLE_AI_API_KEY\",\"GOOGLE_AI_MODEL\",\"OPENROUTER_API_KEY\",\"OPENROUTER_MODEL\",\"OPENROUTER_BASE_URL\"]'
3535
secrets:
3636
aws-key-id: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_ID }}
3737
aws-secret-key: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_SECRET }}

.github/workflows/staging-deploy.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ jobs:
2323
OPENAI_MODEL: ${{ vars.OPENAI_MODEL }}
2424
GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }}
2525
GOOGLE_AI_MODEL: ${{ vars.GOOGLE_AI_MODEL }}
26+
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
27+
OPENROUTER_MODEL: ${{ vars.OPENROUTER_MODEL }}
28+
OPENROUTER_BASE_URL: ${{ vars.OPENROUTER_BASE_URL }}
2629
steps:
2730
- name: Checkout Code
2831
uses: actions/checkout@v4
@@ -67,7 +70,7 @@ jobs:
6770
with:
6871
template-repository-name: "lambda-feedback/chat-function-boilerplate"
6972
environment: "staging"
70-
deployed-environment-variables: '[\"OPENAI_API_KEY\",\"OPENAI_MODEL\",\"GOOGLE_AI_API_KEY\",\"GOOGLE_AI_MODEL\"]'
73+
deployed-environment-variables: '[\"OPENAI_API_KEY\",\"OPENAI_MODEL\",\"GOOGLE_AI_API_KEY\",\"GOOGLE_AI_MODEL\",\"OPENROUTER_API_KEY\",\"OPENROUTER_MODEL\",\"OPENROUTER_BASE_URL\"]'
7174
secrets:
7275
aws-key-id: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_ID }}
7376
aws-secret-key: ${{ secrets.LAMBDA_CONTAINER_PIPELINE_AWS_SECRET }}

.github/workflows/test-lint.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ jobs:
2121
OPENAI_MODEL: ${{ vars.OPENAI_MODEL }}
2222
GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }}
2323
GOOGLE_AI_MODEL: ${{ vars.GOOGLE_AI_MODEL }}
24+
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
25+
OPENROUTER_MODEL: ${{ vars.OPENROUTER_MODEL }}
26+
OPENROUTER_BASE_URL: ${{ vars.OPENROUTER_BASE_URL }}
2427
steps:
2528
- name: Checkout
2629
uses: actions/checkout@v4

README.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,15 @@ OPENAI_MODEL
2222
GOOGLE_AI_API_KEY
2323
GOOGLE_AI_MODEL
2424
```
25-
26-
> [!Note]
27-
> If you decide to use another endpoint such as Azure or Ollama or any other, please update the github workflow files to use the right secrets and variables for testing.
25+
> If you use OpenRouter:
2826
```bash
29-
> If you use Azure-OpenAI:
30-
AZURE_OPENAI_API_KEY
31-
AZURE_OPENAI_ENDPOINT
32-
AZURE_OPENAI_API_VERSION
33-
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME
34-
AZURE_OPENAI_EMBEDDING_3072_DEPLOYMENT
35-
AZURE_OPENAI_EMBEDDING_1536_DEPLOYMENT
36-
AZURE_OPENAI_EMBEDDING_3072_MODEL
37-
AZURE_OPENAI_EMBEDDING_1536_MODEL
27+
OPENROUTER_API_KEY
28+
OPENROUTER_MODEL
29+
OPENROUTER_BASE_URL
30+
```
31+
32+
> [!NOTE]
33+
> If you decide to use other providers like Azure OpenAI or Ollama, you will need to update the workflow files and the `llm_factory.py` file to include the necessary environment variables for those providers.
3834
3935
> For monitoring of the LLM calls (follow instructions on how to set up on langsmith online):
4036
LANGCHAIN_TRACING_V2

src/agent/llm_factory.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os
2+
from typing import Optional
23

34
from langchain_openai import AzureChatOpenAI
45
from langchain_openai import AzureOpenAIEmbeddings
@@ -82,3 +83,19 @@ def __init__(self, temperature: int = 0):
8283

8384
def get_llm(self):
8485
return self._google_llm
86+
87+
class ChatOpenRouterProvider:
88+
def __init__(self, temperature: int = 0, model: Optional[str] = None):
89+
model_name = model or os.environ['OPENROUTER_MODEL']
90+
key = os.environ['OPENROUTER_API_KEY']
91+
base_url = os.environ['OPENROUTER_BASE_URL']
92+
93+
self._openrouter_llm = ChatOpenAI(
94+
model=model_name,
95+
temperature=temperature,
96+
api_key=key,
97+
base_url=base_url,
98+
)
99+
100+
def get_llm(self):
101+
return self._openrouter_llm

0 commit comments

Comments
 (0)