XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
UTF-8
from __future__ import annotations


from ..template import OpenaiTemplate
from ...config import DEFAULT_MODEL


class Together(OpenaiTemplate):
    label = "Together"
    url = "https://together.xyz"
    login_url = "https://api.together.ai/"
    base_url = "https://api.together.xyz/v1"
    models_endpoint = "https://api.together.xyz/v1/models"

    active_by_default = False
    working = True
    needs_auth = True
    models_needs_auth = True
    supports_stream = True
    supports_system_message = True
    supports_message_history = True

    default_model = DEFAULT_MODEL
    default_vision_model = default_model
    default_image_model = "black-forest-labs/FLUX.1.1-pro"
    vision_models = [
        default_vision_model,
        "Qwen/Qwen2-VL-72B-Instruct",
        "Qwen/Qwen2.5-VL-72B-Instruct",
        "arcee-ai/virtuoso-medium-v2",
        "arcee_ai/arcee-spotlight",
        "meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo",
        "meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo",
        "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
        "meta-llama/Llama-4-Scout-17B-16E-Instruct",
        "meta-llama/Llama-Vision-Free",
    ]
    image_models = []
    models = []
    model_configs = {}  # Store model configurations including stop tokens
    _models_cached = False
    _api_key_cache = None

    model_aliases = {
        ### Models Chat/Language ###
        # meta-llama
        "llama-3.2-3b": "meta-llama/Llama-3.2-3B-Instruct-Turbo",
        "llama-2-70b": [
            "meta-llama/Llama-2-70b-hf",
            "meta-llama/Llama-2-70b-hf",
        ],
        "llama-3-70b": [
            "meta-llama/Meta-Llama-3-70B-Instruct-Turbo",
            "meta-llama/Llama-3-70b-chat-hf",
            "Rrrr/meta-llama/Llama-3-70b-chat-hf-6f9ad551",
            "roberizk@gmail.com/meta-llama/Llama-3-70b-chat-hf-26ee936b",
            "roberizk@gmail.com/meta-llama/Meta-Llama-3-70B-Instruct-6feb41f7",
        ],
        "llama-3.2-90b": "meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo",
        "llama-3.3-70b": [
            "meta-llama/Llama-3.3-70B-Instruct-Turbo",
            "meta-llama/Llama-3.3-70B-Instruct-Turbo-Free",
        ],
        "llama-4-scout": "meta-llama/Llama-4-Scout-17B-16E-Instruct",
        "llama-3.1-8b": [
            "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
            "blackbox/meta-llama-3-1-8b",
        ],
        "llama-3.2-11b": "meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo",
        # "llama-vision": "meta-llama/Llama-Vision-Free",
        "llama-3-8b": [
            "meta-llama/Llama-3-8b-chat-hf",
            "meta-llama/Meta-Llama-3-8B-Instruct-Lite",
            "roberizk@gmail.com/meta-llama/Meta-Llama-3-8B-Instruct-8ced8839",
        ],
        "llama-3.1-70b": [
            "meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",
            "Rrrr/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo-03dc18e1",
            "Rrrr/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo-6c92f39d",
        ],
        "llama-3.1-405b": [
            "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo",
            "eddiehou/meta-llama/Llama-3.1-405B",
        ],
        "llama-4-maverick": "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
        # arcee-ai
        # "arcee-spotlight": "arcee_ai/arcee-spotlight",
        # "arcee-blitz": "arcee-ai/arcee-blitz",
        # "arcee-caller": "arcee-ai/caller",
        # "arcee-virtuoso-large": "arcee-ai/virtuoso-large",
        # "arcee-virtuoso-medium": "arcee-ai/virtuoso-medium-v2",
        # "arcee-coder-large": "arcee-ai/coder-large",
        # "arcee-maestro": "arcee-ai/maestro-reasoning",
        # "afm-4.5b": "arcee-ai/AFM-4.5B-Preview",
        # deepseek-ai
        "deepseek-r1": "deepseek-ai/DeepSeek-R1",
        "deepseek-v3": "deepseek-ai/DeepSeek-V3",
        "deepseek-r1-distill-llama-70b": [
            "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
            "deepseek-ai/DeepSeek-R1-Distill-Llama-70B-free",
        ],
        "deepseek-r1-distill-qwen-1.5b": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
        "deepseek-r1-distill-qwen-14b": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
        # Qwen
        "qwen-2.5-vl-72b": "Qwen/Qwen2.5-VL-72B-Instruct",
        "qwen-2.5-coder-32b": "Qwen/Qwen2.5-Coder-32B-Instruct",
        "qwen-2.5-7b": "Qwen/Qwen2.5-7B-Instruct-Turbo",
        "qwen-2-vl-72b": "Qwen/Qwen2-VL-72B-Instruct",
        "qwq-32b": "Qwen/QwQ-32B",
        "qwen-2.5-72b": "Qwen/Qwen2.5-72B-Instruct-Turbo",
        "qwen-3-235b": ["Qwen/Qwen3-235B-A22B-fp8", "Qwen/Qwen3-235B-A22B-fp8-tput"],
        "qwen-2-72b": "Qwen/Qwen2-72B-Instruct",
        "qwen-3-32b": "Qwen/Qwen3-32B-FP8",
        # mistralai
        "mixtral-8x7b": "mistralai/Mixtral-8x7B-Instruct-v0.1",
        "mistral-small-24b": "mistralai/Mistral-Small-24B-Instruct-2501",
        "mistral-7b": [
            "mistralai/Mistral-7B-Instruct-v0.1",
            "mistralai/Mistral-7B-Instruct-v0.2",
            "mistralai/Mistral-7B-Instruct-v0.3",
        ],
        # google
        "gemma-2b": "google/gemma-2b-it",
        "gemma-2-27b": "google/gemma-2-27b-it",
        "gemma-3-27b": "google/gemma-3-27b-it",
        "gemma-3n-e4b": "google/gemma-3n-E4B-it",
        # nvidia
        "nemotron-70b": "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF",
        # togethercomputer
        # "refuel-v2": "togethercomputer/Refuel-Llm-V2",
        # "moa": "togethercomputer/MoA-1",
        # "refuel-v2-small": "togethercomputer/Refuel-Llm-V2-Small",
        # "moa-turbo": "togethercomputer/MoA-1-Turbo",
        # lgai
        # "exaone-3.5-32b": "lgai/exaone-3-5-32b-instruct",
        # "exaone-deep-32b": "lgai/exaone-deep-32b",
        # Gryphe
        # "mythomax-2-13b": "Gryphe/MythoMax-L2-13b",
        # "mythomax-2-13b-lite": "Gryphe/MythoMax-L2-13b-Lite",
        # NousResearch
        "hermes-2-dpo": "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
        # marin-community
        # "marin-8b": "marin-community/marin-8b-instruct",
        # scb10x
        # "typhoon-2-70b": "scb10x/scb10x-llama3-1-typhoon2-70b-instruct",
        # "typhoon-2.1": "scb10x/scb10x-typhoon-2-1-gemma3-12b",
        # perplexity-ai
        "r1-1776": "perplexity-ai/r1-1776",
        ### Models Image ###
        # black-forest-labs
        "flux": [
            "black-forest-labs/FLUX.1-schnell-Free",
            "black-forest-labs/FLUX.1-schnell",
            "black-forest-labs/FLUX.1.1-pro",
            "black-forest-labs/FLUX.1-pro",
            "black-forest-labs/FLUX.1.1-pro",
            "black-forest-labs/FLUX.1-pro",
            "black-forest-labs/FLUX.1-redux",
            "black-forest-labs/FLUX.1-depth",
            "black-forest-labs/FLUX.1-canny",
            "black-forest-labs/FLUX.1-kontext-max",
            "black-forest-labs/FLUX.1-dev-lora",
            "black-forest-labs/FLUX.1-dev",
            "black-forest-labs/FLUX.1-dev-lora",
            "black-forest-labs/FLUX.1-kontext-pro",
            "black-forest-labs/FLUX.1-kontext-dev",
        ],
        "flux-schnell": [
            "black-forest-labs/FLUX.1-schnell-Free",
            "black-forest-labs/FLUX.1-schnell",
        ],
        "flux-pro": ["black-forest-labs/FLUX.1.1-pro", "black-forest-labs/FLUX.1-pro"],
        "flux-redux": "black-forest-labs/FLUX.1-redux",
        "flux-depth": "black-forest-labs/FLUX.1-depth",
        "flux-canny": "black-forest-labs/FLUX.1-canny",
        "flux-kontext-max": "black-forest-labs/FLUX.1-kontext-max",
        "flux-dev-lora": "black-forest-labs/FLUX.1-dev-lora",
        "flux-dev": [
            "black-forest-labs/FLUX.1-dev",
            "black-forest-labs/FLUX.1-dev-lora",
        ],
        "flux-kontext-pro": "black-forest-labs/FLUX.1-kontext-pro",
        "flux-kontext-dev": "black-forest-labs/FLUX.1-kontext-dev",
    }