Skip to content

Commit de4aabd

Browse files
committed
Text-to-SQL: Add Mistral provider
1 parent 2200453 commit de4aabd

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

cratedb_toolkit/query/nlsql/model.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class ModelProvider(Enum):
1212
OPENAI = "openai"
1313
ANTHROPIC = "anthropic"
1414
AZURE = "azure"
15+
MISTRAL = "mistral"
1516
OLLAMA = "ollama"
1617

1718

@@ -44,6 +45,8 @@ def from_options(
4445
llm_name = "gemma3:1b"
4546
elif provider in [ModelProvider.ANTHROPIC]:
4647
llm_name = "claude-sonnet-4-0"
48+
elif provider in [ModelProvider.MISTRAL]:
49+
llm_name = "mistral-medium-latest"
4750
else:
4851
raise ValueError("LLM completion model not defined")
4952
if not llm_api_key:
@@ -69,6 +72,12 @@ def from_options(
6972
"LLM API key not defined. Use either CLI/API parameter or "
7073
"ANTHROPIC_API_KEY environment variable."
7174
)
75+
elif provider is ModelProvider.MISTRAL:
76+
llm_api_key = os.getenv("MISTRAL_API_KEY")
77+
if not llm_api_key:
78+
raise ValueError(
79+
"LLM API key not defined. Use either CLI/API parameter or MISTRAL_API_KEY environment variable."
80+
)
7281
return cls(
7382
provider=provider,
7483
endpoint=llm_endpoint,

cratedb_toolkit/query/nlsql/util.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from llama_index.core.llms import LLM
99
from llama_index.llms.anthropic import Anthropic
1010
from llama_index.llms.azure_openai import AzureOpenAI
11+
from llama_index.llms.mistralai import MistralAI
1112
from llama_index.llms.ollama import Ollama
1213
from llama_index.llms.openai import OpenAI
1314

@@ -79,6 +80,13 @@ def configure_llm(info: ModelInfo, debug: bool = False) -> LLM:
7980
base_url=info.endpoint,
8081
api_key=info.api_key,
8182
)
83+
elif info.provider is ModelProvider.MISTRAL:
84+
llm = MistralAI(
85+
model=completion_model,
86+
temperature=0.0,
87+
endpoint=info.endpoint,
88+
api_key=info.api_key,
89+
)
8290
else:
8391
raise ValueError(f"LLM model provider not implemented: {info.provider}")
8492

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,10 @@ optional-dependencies.mongodb = [
227227
optional-dependencies.nlsql = [
228228
"llama-index-llms-anthropic<0.12; python_version>='3.10'",
229229
"llama-index-llms-azure-openai<0.6; python_version>='3.10'",
230+
"llama-index-llms-mistralai<0.11; python_version>='3.10'",
230231
"llama-index-llms-ollama<0.11; python_version>='3.10'",
231232
"llama-index-llms-openai<0.8; python_version>='3.10'",
233+
"mistralai<2",
232234
]
233235
optional-dependencies.pymongo = [
234236
"jessiql==1.0.0rc1",

0 commit comments

Comments
 (0)