mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-07-09 00:45:16 +00:00
Add native Snowflake Cortex LLM provider (#6005)
This commit is contained in:
@@ -107,7 +107,7 @@ mode: "wide"
|
||||
</Tabs>
|
||||
|
||||
<Info>
|
||||
يوفر CrewAI تكاملات SDK أصلية لـ OpenAI و Anthropic و Google (Gemini API) و Azure و AWS Bedrock -- لا حاجة لتثبيت إضافي بخلاف الملحقات الخاصة بالمزود (مثل `uv add "crewai[openai]"`).
|
||||
يوفر CrewAI تكاملات SDK أصلية لـ OpenAI و Anthropic و Google (Gemini API) و Azure و AWS Bedrock و Snowflake Cortex -- لا حاجة لتثبيت إضافي بخلاف الملحقات الخاصة بالمزود (مثل `uv add "crewai[openai]"`).
|
||||
|
||||
جميع المزودين الآخرين مدعومون بواسطة **LiteLLM**. إذا كنت تخطط لاستخدام أي منهم، أضفه كتبعية لمشروعك:
|
||||
```bash
|
||||
@@ -291,6 +291,55 @@ mode: "wide"
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Snowflake Cortex">
|
||||
يوفر CrewAI تكاملًا أصليًا مع Snowflake Cortex REST API عبر endpoint Chat Completions المتوافق مع OpenAI. تستخدم نماذج `snowflake/...` هذا المسار بدون fallback إلى LiteLLM. يدعم Snowflake Cortex في CrewAI حاليًا Chat Completions فقط، لذلك استخدم وضع `api` الافتراضي ولا تضبط `api="responses"`.
|
||||
|
||||
```toml Code
|
||||
# Required
|
||||
SNOWFLAKE_PAT=<your-programmatic-access-token>
|
||||
SNOWFLAKE_ACCOUNT_URL=https://<account-identifier>.snowflakecomputing.com
|
||||
|
||||
# Alternative account configuration
|
||||
SNOWFLAKE_ACCOUNT=<account-identifier>
|
||||
```
|
||||
|
||||
**الاستخدام الأساسي:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/openai-gpt-4.1",
|
||||
temperature=0.7,
|
||||
max_completion_tokens=1024,
|
||||
)
|
||||
```
|
||||
|
||||
**نماذج Claude على Cortex:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/claude-sonnet-4-5",
|
||||
max_completion_tokens=1024,
|
||||
stream=True,
|
||||
)
|
||||
```
|
||||
|
||||
**متغيرات البيئة المدعومة:**
|
||||
- `SNOWFLAKE_PAT` أو `SNOWFLAKE_TOKEN` أو `SNOWFLAKE_JWT`: الرمز المستخدم كاعتماد Bearer
|
||||
- `SNOWFLAKE_ACCOUNT_URL`: عنوان URL الكامل لحساب Snowflake
|
||||
- `SNOWFLAKE_ACCOUNT` أو `SNOWFLAKE_ACCOUNT_ID` أو `SNOWFLAKE_ACCOUNT_IDENTIFIER`: معرف الحساب المستخدم لبناء URL
|
||||
|
||||
تستخدم طلبات Snowflake REST الدور الافتراضي للمستخدم. تأكد من أن هذا الدور لديه `SNOWFLAKE.CORTEX_USER` أو `SNOWFLAKE.CORTEX_REST_API_USER`. لا يتطلب endpoint Cortex REST Chat Completions معاملات database أو schema أو warehouse أو role صريح.
|
||||
|
||||
**الميزات:**
|
||||
- اختيار provider أصلي باستخدام `model="snowflake/<model-name>"`
|
||||
- Chat Completions مع streaming وبدونه فقط؛ `api="responses"` غير مدعوم
|
||||
- تتبع استخدام الرموز
|
||||
- استدعاء الدوال لنماذج OpenAI و Claude المستضافة في Snowflake
|
||||
- إزالة assistant prefill النهائي غير الصالح تلقائيًا لنماذج Claude في Snowflake
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Anthropic">
|
||||
يوفر CrewAI تكاملًا أصليًا مع Anthropic من خلال Anthropic Python SDK.
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ There are different places in CrewAI code where you can specify the model to use
|
||||
</Tabs>
|
||||
|
||||
<Info>
|
||||
CrewAI provides native SDK integrations for OpenAI, Anthropic, Google (Gemini API), Azure, and AWS Bedrock — no extra install needed beyond the provider-specific extras (e.g. `uv add "crewai[openai]"`).
|
||||
CrewAI provides native SDK integrations for OpenAI, Anthropic, Google (Gemini API), Azure, AWS Bedrock, and Snowflake Cortex — no extra install needed beyond the provider-specific extras (e.g. `uv add "crewai[openai]"`).
|
||||
|
||||
All other providers are powered by **LiteLLM**. If you plan to use any of them, add it as a dependency to your project:
|
||||
```bash
|
||||
@@ -291,6 +291,55 @@ In this section, you'll find detailed examples that help you select, configure,
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Snowflake Cortex">
|
||||
CrewAI provides native integration with the Snowflake Cortex REST API through its OpenAI-compatible Chat Completions endpoint. This avoids LiteLLM fallback for `snowflake/...` models. Snowflake Cortex currently supports Chat Completions only in CrewAI, so use the default `api` mode and do not set `api="responses"`.
|
||||
|
||||
```toml Code
|
||||
# Required
|
||||
SNOWFLAKE_PAT=<your-programmatic-access-token>
|
||||
SNOWFLAKE_ACCOUNT_URL=https://<account-identifier>.snowflakecomputing.com
|
||||
|
||||
# Alternative account configuration
|
||||
SNOWFLAKE_ACCOUNT=<account-identifier>
|
||||
```
|
||||
|
||||
**Basic Usage:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/openai-gpt-4.1",
|
||||
temperature=0.7,
|
||||
max_completion_tokens=1024,
|
||||
)
|
||||
```
|
||||
|
||||
**Claude Models on Cortex:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/claude-sonnet-4-5",
|
||||
max_completion_tokens=1024,
|
||||
stream=True,
|
||||
)
|
||||
```
|
||||
|
||||
**Supported Environment Variables:**
|
||||
- `SNOWFLAKE_PAT`, `SNOWFLAKE_TOKEN`, or `SNOWFLAKE_JWT`: token used as the Bearer credential
|
||||
- `SNOWFLAKE_ACCOUNT_URL`: full Snowflake account URL
|
||||
- `SNOWFLAKE_ACCOUNT`, `SNOWFLAKE_ACCOUNT_ID`, or `SNOWFLAKE_ACCOUNT_IDENTIFIER`: account identifier used to build the account URL
|
||||
|
||||
Snowflake REST requests use the user's default Snowflake role. Make sure that role has `SNOWFLAKE.CORTEX_USER` or `SNOWFLAKE.CORTEX_REST_API_USER`. Database, schema, warehouse, and explicit role parameters are not required by the Cortex REST Chat Completions endpoint.
|
||||
|
||||
**Features:**
|
||||
- Native provider selection with `model="snowflake/<model-name>"`
|
||||
- Streaming and non-streaming Chat Completions only; `api="responses"` is not supported
|
||||
- Token usage tracking
|
||||
- Function calling for Snowflake-hosted OpenAI and Claude models
|
||||
- Automatic removal of invalid trailing assistant prefill for Snowflake Claude models
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Anthropic">
|
||||
CrewAI provides native integration with Anthropic through the Anthropic Python SDK.
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ CrewAI 코드 내에는 사용할 모델을 지정할 수 있는 여러 위치
|
||||
</Tabs>
|
||||
|
||||
<Info>
|
||||
CrewAI는 OpenAI, Anthropic, Google (Gemini API), Azure, AWS Bedrock에 대해 네이티브 SDK 통합을 제공합니다 — 제공자별 extras(예: `uv add "crewai[openai]"`) 외에 추가 설치가 필요하지 않습니다.
|
||||
CrewAI는 OpenAI, Anthropic, Google (Gemini API), Azure, AWS Bedrock, Snowflake Cortex에 대해 네이티브 SDK 통합을 제공합니다 — 제공자별 extras(예: `uv add "crewai[openai]"`) 외에 추가 설치가 필요하지 않습니다.
|
||||
|
||||
그 외 모든 제공자는 **LiteLLM**을 통해 지원됩니다. 이를 사용하려면 프로젝트에 의존성으로 추가하세요:
|
||||
```bash
|
||||
@@ -230,6 +230,55 @@ CrewAI는 고유한 기능, 인증 방법, 모델 역량을 제공하는 다양
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Snowflake Cortex">
|
||||
CrewAI는 OpenAI 호환 Chat Completions 엔드포인트를 통해 Snowflake Cortex REST API와 네이티브로 통합됩니다. `snowflake/...` 모델은 LiteLLM fallback 없이 사용됩니다. CrewAI에서 Snowflake Cortex는 현재 Chat Completions만 지원하므로 기본 `api` 모드를 사용하고 `api="responses"`를 설정하지 마세요.
|
||||
|
||||
```toml Code
|
||||
# Required
|
||||
SNOWFLAKE_PAT=<your-programmatic-access-token>
|
||||
SNOWFLAKE_ACCOUNT_URL=https://<account-identifier>.snowflakecomputing.com
|
||||
|
||||
# Alternative account configuration
|
||||
SNOWFLAKE_ACCOUNT=<account-identifier>
|
||||
```
|
||||
|
||||
**기본 사용법:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/openai-gpt-4.1",
|
||||
temperature=0.7,
|
||||
max_completion_tokens=1024,
|
||||
)
|
||||
```
|
||||
|
||||
**Cortex의 Claude 모델:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/claude-sonnet-4-5",
|
||||
max_completion_tokens=1024,
|
||||
stream=True,
|
||||
)
|
||||
```
|
||||
|
||||
**지원 환경 변수:**
|
||||
- `SNOWFLAKE_PAT`, `SNOWFLAKE_TOKEN`, 또는 `SNOWFLAKE_JWT`: Bearer 자격 증명으로 사용할 토큰
|
||||
- `SNOWFLAKE_ACCOUNT_URL`: 전체 Snowflake 계정 URL
|
||||
- `SNOWFLAKE_ACCOUNT`, `SNOWFLAKE_ACCOUNT_ID`, 또는 `SNOWFLAKE_ACCOUNT_IDENTIFIER`: 계정 URL을 만들 계정 식별자
|
||||
|
||||
Snowflake REST 요청은 사용자의 기본 Snowflake role을 사용합니다. 해당 role에 `SNOWFLAKE.CORTEX_USER` 또는 `SNOWFLAKE.CORTEX_REST_API_USER`가 있는지 확인하세요. Cortex REST Chat Completions 엔드포인트에는 database, schema, warehouse, 명시적 role 파라미터가 필요하지 않습니다.
|
||||
|
||||
**기능:**
|
||||
- `model="snowflake/<model-name>"`을 통한 네이티브 provider 선택
|
||||
- Streaming 및 non-streaming Chat Completions만 지원; `api="responses"`는 지원되지 않음
|
||||
- 토큰 사용량 추적
|
||||
- Snowflake 호스팅 OpenAI 및 Claude 모델의 함수 호출
|
||||
- Snowflake Claude 모델에서 유효하지 않은 마지막 assistant prefill 자동 제거
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Anthropic">
|
||||
```toml Code
|
||||
# Required
|
||||
|
||||
@@ -106,7 +106,7 @@ Existem diferentes locais no código do CrewAI onde você pode especificar o mod
|
||||
</Tabs>
|
||||
|
||||
<Info>
|
||||
O CrewAI oferece integrações nativas via SDK para OpenAI, Anthropic, Google (Gemini API), Azure e AWS Bedrock — sem necessidade de instalação extra além dos extras específicos do provedor (ex.: `uv add "crewai[openai]"`).
|
||||
O CrewAI oferece integrações nativas via SDK para OpenAI, Anthropic, Google (Gemini API), Azure, AWS Bedrock e Snowflake Cortex — sem necessidade de instalação extra além dos extras específicos do provedor (ex.: `uv add "crewai[openai]"`).
|
||||
|
||||
Todos os outros provedores são alimentados pelo **LiteLLM**. Se você planeja usar algum deles, adicione-o como dependência ao seu projeto:
|
||||
```bash
|
||||
@@ -230,6 +230,55 @@ Nesta seção, você encontrará exemplos detalhados que ajudam a selecionar, co
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Snowflake Cortex">
|
||||
O CrewAI oferece integração nativa com a API REST do Snowflake Cortex pelo endpoint Chat Completions compatível com OpenAI. Isso evita fallback para LiteLLM em modelos `snowflake/...`. Atualmente, o Snowflake Cortex no CrewAI oferece suporte apenas a Chat Completions, então use o modo `api` padrão e não defina `api="responses"`.
|
||||
|
||||
```toml Code
|
||||
# Obrigatório
|
||||
SNOWFLAKE_PAT=<your-programmatic-access-token>
|
||||
SNOWFLAKE_ACCOUNT_URL=https://<account-identifier>.snowflakecomputing.com
|
||||
|
||||
# Configuração alternativa da conta
|
||||
SNOWFLAKE_ACCOUNT=<account-identifier>
|
||||
```
|
||||
|
||||
**Uso básico:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/openai-gpt-4.1",
|
||||
temperature=0.7,
|
||||
max_completion_tokens=1024,
|
||||
)
|
||||
```
|
||||
|
||||
**Modelos Claude no Cortex:**
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="snowflake/claude-sonnet-4-5",
|
||||
max_completion_tokens=1024,
|
||||
stream=True,
|
||||
)
|
||||
```
|
||||
|
||||
**Variáveis de ambiente suportadas:**
|
||||
- `SNOWFLAKE_PAT`, `SNOWFLAKE_TOKEN` ou `SNOWFLAKE_JWT`: token usado como credencial Bearer
|
||||
- `SNOWFLAKE_ACCOUNT_URL`: URL completa da conta Snowflake
|
||||
- `SNOWFLAKE_ACCOUNT`, `SNOWFLAKE_ACCOUNT_ID` ou `SNOWFLAKE_ACCOUNT_IDENTIFIER`: identificador da conta usado para montar a URL
|
||||
|
||||
As requisições REST do Snowflake usam a role padrão do usuário. Garanta que essa role tenha `SNOWFLAKE.CORTEX_USER` ou `SNOWFLAKE.CORTEX_REST_API_USER`. Parâmetros de banco de dados, schema, warehouse e role explícita não são exigidos pelo endpoint Cortex REST Chat Completions.
|
||||
|
||||
**Recursos:**
|
||||
- Seleção nativa com `model="snowflake/<model-name>"`
|
||||
- Chat Completions com e sem streaming apenas; `api="responses"` não é compatível
|
||||
- Rastreamento de uso de tokens
|
||||
- Chamadas de função para modelos OpenAI e Claude hospedados no Snowflake
|
||||
- Remoção automática de prefill final de assistant inválido para modelos Claude no Snowflake
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Anthropic">
|
||||
```toml Code
|
||||
# Obrigatório
|
||||
|
||||
Reference in New Issue
Block a user