Skip to content

Commit 1da9342

Browse files
add: nebius support (#37)
1 parent 6574554 commit 1da9342

File tree

6 files changed

+15
-3
lines changed

6 files changed

+15
-3
lines changed

.github/workflows/run-unit-tests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
echo OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} >> .env
2020
echo LAMOOM_API_URI=${{ secrets.LAMOOM_API_URI }} >> .env
2121
echo LAMOOM_API_TOKEN=${{ secrets.LAMOOM_API_TOKEN }} >> .env
22+
echo NEBIUS_API_KEY=${{ secrets.NEBIUS_API_KEY }} >> .env
2223
cat .env
2324
2425
- name: Install dependencies

lamoom/prompt/lamoom.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class Lamoom:
3838
claude_key: str = None
3939
gemini_key: str = None
4040
azure_keys: t.Dict[str, str] = None
41+
nebius_key: str = None
4142
secrets: Secrets = None
4243

4344
clients = {}
@@ -65,6 +66,9 @@ def __post_init__(self):
6566
if not self.claude_key and self.secrets.CLAUDE_API_KEY:
6667
logger.debug(f"Using Claude API key from secrets")
6768
self.claude_key = self.secrets.CLAUDE_API_KEY
69+
if not self.nebius_key and self.secrets.NEBIUS_API_KEY:
70+
logger.debug(f"Using Nebius API key from secrets")
71+
self.nebius_key = self.secrets.NEBIUS_API_KEY
6872
self.service = LamoomService()
6973
if self.openai_key:
7074
self.clients[AI_MODELS_PROVIDER.OPENAI] = {
@@ -85,6 +89,8 @@ def __post_init__(self):
8589
self.clients[AI_MODELS_PROVIDER.CLAUDE] = {"api_key": self.claude_key}
8690
if self.gemini_key:
8791
self.clients[AI_MODELS_PROVIDER.GEMINI] = {"api_key": self.gemini_key}
92+
if self.nebius_key:
93+
self.clients[AI_MODELS_PROVIDER.NEBIUS] = {"api_key": self.nebius_key}
8894
self.worker = SaveWorker()
8995

9096
def create_test(
@@ -147,6 +153,10 @@ def extract_provider_name(self, model: str) -> dict:
147153

148154
if "azure" in parts[0].lower() and len(parts) == 3:
149155
model_provider, realm, model_name = parts
156+
elif "nebius" in parts[0].lower() and len(parts) == 3:
157+
model_provider = parts[0]
158+
model_name = f"{parts[1]}/{parts[2]}"
159+
realm = None
150160
else:
151161
model_provider, model_name = parts
152162
realm = None

lamoom/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class Secrets:
4444
OPENAI_API_KEY: str = field(default_factory=lambda: os.getenv("OPENAI_API_KEY"))
4545
CLAUDE_API_KEY: str = field(default_factory=lambda: os.getenv("CLAUDE_API_KEY"))
4646
GEMINI_API_KEY: str = field(default_factory=lambda: os.getenv("GEMINI_API_KEY"))
47+
NEBIUS_API_KEY: str = field(default_factory=lambda: os.getenv("NEBIUS_API_KEY"))
4748
OPENAI_ORG: str = field(default_factory=lambda: os.getenv("OPENAI_ORG"))
4849
azure_keys: dict = field(
4950
default_factory=lambda: json.loads(

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "lamoom"
3-
version = "0.1.34"
3+
version = "0.1.35"
44
description = ""
55
authors = ["Lamoom Engineering Team <engineering@lamoom.com>"]
66
readme = "README.md"

tests/prompts/test_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ def test_model(client):
2626
prompt = Prompt(id=prompt_id)
2727
prompt.add("{text}", role='user')
2828

29-
result = client.call(prompt.id, context, "openai/o3-mini")
29+
result = client.call(prompt.id, context, "nebius/deepseek-ai/DeepSeek-R1")
3030

3131
assert result.content

tests/test_integrational.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@ def test_loading_prompt_from_service(client: Lamoom):
5454
result = client.call(prompt.id, context, "azure/useast/gpt-4o")
5555

5656
# should call the prompt with music
57-
assert result.prompt.messages[-1] == {'role': 'user', 'content': 'test1\ntest2'}
57+
assert result.prompt.messages[-1] == {'role': 'user', 'content': 'music1\nmusic2'}

0 commit comments

Comments
 (0)