diff --git a/conf/llm_factories.json b/conf/llm_factories.json index be9e7322d7..1dcbb85238 100644 --- a/conf/llm_factories.json +++ b/conf/llm_factories.json @@ -5641,6 +5641,42 @@ "is_tools": true } ] + }, + { + "name": "Avian", + "logo": "", + "tags": "LLM", + "status": "1", + "llm": [ + { + "llm_name": "deepseek/deepseek-v3.2", + "tags": "LLM,CHAT,164K", + "max_tokens": 164000, + "model_type": "chat", + "is_tools": true + }, + { + "llm_name": "moonshotai/kimi-k2.5", + "tags": "LLM,CHAT,131K", + "max_tokens": 131000, + "model_type": "chat", + "is_tools": true + }, + { + "llm_name": "z-ai/glm-5", + "tags": "LLM,CHAT,131K", + "max_tokens": 131000, + "model_type": "chat", + "is_tools": true + }, + { + "llm_name": "minimax/minimax-m2.5", + "tags": "LLM,CHAT,1M", + "max_tokens": 1000000, + "model_type": "chat", + "is_tools": true + } + ] } ] } diff --git a/docs/references/supported_models.mdx b/docs/references/supported_models.mdx index d35f203a53..bb50fa1e73 100644 --- a/docs/references/supported_models.mdx +++ b/docs/references/supported_models.mdx @@ -18,6 +18,7 @@ A complete list of models supported by RAGFlow, which will continue to expand. | Provider | LLM | Image2Text | Speech2text | TTS | Embedding | Rerank | OCR | | --------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | | Anthropic | :heavy_check_mark: | | | | | | | +| Avian | :heavy_check_mark: | | | | | | | | Azure-OpenAI | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | | | | BaiChuan | :heavy_check_mark: | | | | :heavy_check_mark: | | | | BaiduYiyan | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | :heavy_check_mark: | | diff --git a/rag/llm/__init__.py b/rag/llm/__init__.py index c610e4fdff..77b1ff2b0e 100644 --- a/rag/llm/__init__.py +++ b/rag/llm/__init__.py @@ -58,6 +58,7 @@ class SupportedLiteLLMProvider(StrEnum): Azure_OpenAI = "Azure-OpenAI" n1n = "n1n" HunYuan = "Tencent Hunyuan" + Avian = "Avian" FACTORY_DEFAULT_BASE_URL = { @@ -85,6 +86,7 @@ FACTORY_DEFAULT_BASE_URL = { SupportedLiteLLMProvider.OpenAI: "https://api.openai.com/v1", SupportedLiteLLMProvider.n1n: "https://api.n1n.ai/v1", SupportedLiteLLMProvider.HunYuan: "https://api.hunyuan.cloud.tencent.com/v1", + SupportedLiteLLMProvider.Avian: "https://api.avian.io/v1", } @@ -124,6 +126,7 @@ LITELLM_PROVIDER_PREFIX = { SupportedLiteLLMProvider.Azure_OpenAI: "azure/", SupportedLiteLLMProvider.n1n: "openai/", SupportedLiteLLMProvider.HunYuan: "openai/", + SupportedLiteLLMProvider.Avian: "openai/", } ChatModel = globals().get("ChatModel", {}) diff --git a/rag/llm/chat_model.py b/rag/llm/chat_model.py index 3e8e918308..6575bf633a 100644 --- a/rag/llm/chat_model.py +++ b/rag/llm/chat_model.py @@ -1096,6 +1096,15 @@ class N1nChat(Base): super().__init__(key, model_name, base_url, **kwargs) +class AvianChat(Base): + _FACTORY_NAME = "Avian" + + def __init__(self, key, model_name, base_url="https://api.avian.io/v1", **kwargs): + if not base_url: + base_url = "https://api.avian.io/v1" + super().__init__(key, model_name, base_url, **kwargs) + + class LiteLLMBase(ABC): _FACTORY_NAME = [ "Tongyi-Qianwen", diff --git a/web/src/assets/svg/llm/avian.svg b/web/src/assets/svg/llm/avian.svg new file mode 100644 index 0000000000..28d9405c1e --- /dev/null +++ b/web/src/assets/svg/llm/avian.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/src/components/svg-icon.tsx b/web/src/components/svg-icon.tsx index c704cf54df..6a14fc64bb 100644 --- a/web/src/components/svg-icon.tsx +++ b/web/src/components/svg-icon.tsx @@ -84,6 +84,7 @@ const svgIcons = [ LLMFactory.PaddleOCR, LLMFactory.N1n, // LLMFactory.DeerAPI, + LLMFactory.Avian, ]; export const LlmIcon = ({ diff --git a/web/src/constants/llm.ts b/web/src/constants/llm.ts index 623618d650..6cde18fcb9 100644 --- a/web/src/constants/llm.ts +++ b/web/src/constants/llm.ts @@ -63,6 +63,7 @@ export enum LLMFactory { MinerU = 'MinerU', PaddleOCR = 'PaddleOCR', N1n = 'n1n', + Avian = 'Avian', } // Please lowercase the file name @@ -131,6 +132,7 @@ export const IconMap = { [LLMFactory.MinerU]: 'mineru', [LLMFactory.PaddleOCR]: 'paddleocr', [LLMFactory.N1n]: 'n1n', + [LLMFactory.Avian]: 'avian', }; export const APIMapUrl = { @@ -183,4 +185,5 @@ export const APIMapUrl = { [LLMFactory.DeepInfra]: 'https://deepinfra.com/dash/api_keys', [LLMFactory.PaddleOCR]: 'https://www.paddleocr.ai/latest/', [LLMFactory.N1n]: 'https://docs.n1n.ai', + [LLMFactory.Avian]: 'https://avian.io', };