aiohttp<4.0.0,>=3.0.0
dataclasses_json>=0.5.0
openai>=1.54.3
tiktoken>=0.3.3
anthropic>=0.39.0
snowflake-connector-python>=3.12.3
snowflake-ml-python==1.7.0
snowflake-snowpark-python==1.23.0
transformers>=4.46.2
langchain-openai>=0.3.28
snowflake-snowpark-python>=1.0.0
langchain-community>=0.0.30
pydantic<3.0.0,>=2.6.0
langchain-core<0.4,>=0.3
StrEnum>=0.4.14

[all]
sfn_llm_client[api,local,sync]

[anthropic]
anthropic>=0.39.0

[api]
sfn_llm_client[anthropic,arctic,google,huggingface,openai]

[arctic]
snowflake-connector-python>=3.12.3
snowflake-ml-python==1.7.0
snowflake-snowpark-python==1.23.0
transformers>=4.46.2

[cortex_langchain]
snowflake-snowpark-python>=1.0.0
langchain-community>=0.0.30
pydantic<3.0.0,>=2.6.0
langchain-core<0.4,>=0.3

[google]
google-generativeai>=0.1.0

[huggingface]
transformers>=4.0.0

[local]
transformers>=4.0.0

[openai]
openai>=1.54.3
tiktoken>=0.3.3

[openai_langchain]
langchain-openai>=0.3.28
langchain-community>=0.0.30

[sync]
async_to_sync>=0.2.0

[test]
pytest
pytest-aiohttp
pytest-asyncio
pytest-mock
aioresponses
