API ResourcesExperimental

Experimental Features

This page lists the experimental features provided by OriginRouter. These features are currently in active development or testing stages, aimed at collecting user feedback and validating new possibilities.


Multimodal Support

OriginRouter's multimodal adaptation feature addresses a common pain point: many powerful language models do not natively support all media formats. This feature acts as an intelligent adaptation layer in the background, automatically handling incompatible media types, allowing you to interact with all models through a unified API.

  • Image Support: When you send a message containing image_url to a model that does not support images, the system automatically calls a high-performance vision model to parse the image, converting it into structured text descriptions, and seamlessly adds this description as context to the target model request.
  • Document Support: For models that do not support complex documents like PDF and DOCX, the system automatically selects an adaptation strategy based on the model's capabilities. For models with multimodal capabilities, documents are converted to images to preserve the original content layout as much as possible; for pure text models, a high-quality local OCR and document parsing service is enabled to extract content. For text/* type files, they are uniformly converted to standard text blocks.

You can fine-tune the parsing strategy for various media formats by passing the multimodal parameter in the API request body. The system automatically determines this based on the target model's native capabilities. If the target model (such as a model with built-in vision capabilities) already natively supports a certain type of media, the system will automatically ignore your adaptation requirements and directly pass the native file to the model to ensure the best results and lowest latency.

Request Body

Request Body

  • Name
    multimodal
    Type
    object
    Optional
    Optional
    Description
    Detailed configuration object for multimodal adaptation. If this parameter is not specified, image and PDF adaptation will be enabled by default.
    • Name
      enabled
      Type
      boolean
      Optional
      Optional
      Description
      Global feature toggle. When set to false, all multimodal adaptation conversions will be completely turned off. Default is true.
    • Name
      image
      Type
      object
      Optional
      Optional
      Description
      Image adaptation configuration.
    • Name
      pdf
      Type
      object
      Optional
      Optional
      Description
      PDF document adaptation configuration.
    • Name
      video
      Type
      object
      Optional
      Optional
      Description
      Video adaptation configuration.
    • Name
      audio
      Type
      object
      Optional
      Optional
      Description
      Audio adaptation configuration.

Request

POST
/beta/v1/chat/completions
curl https://api.easytransnote.com/beta/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -d '{
    "model": "gemini-2.5-pro",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "请总结这张图片的内容以及附件的 PDF。"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://example.com/sample.jpg"
            }
          }
        ]
      }
    ],
    "multimodal": {
      "enabled": true,
      "image": {
        "enabled": true,
        "model": "image-describe-base"
      },
      "pdf": {
        "enabled": true
      }
    }
  }'

Cross-Platform File System

Managing and transferring files between different AI providers (such as OpenAI, Anthropic, Google) often faces issues like complex processes, high costs, and repeated uploads. OriginRouter provides a unified file API that completely abstracts and simplifies cross-platform file processing logic.

We are compatible with OpenAI and Anthropic's standard file interfaces (such as /beta/v1/files, /beta/v1/files/{file_id}, and /beta/v1/files/{file_id}/content). The system will automatically identify the protocol format and adapt based on your request headers.

With OriginRouter's cross-platform file system, you can easily achieve file reuse across vendor model calls, reduce network overhead from large file reads, and avoid repeated uploads or file management across multiple platforms. OriginRouter will internally handle all file storage, distribution, and compatibility processing.


Model Fallback

In production environments, the stability of API calls is crucial. Large model calls may sometimes fail due to upstream provider overload, rate limits, or content moderation. The model fallback feature allows you to pre-configure alternative model routes. When the primary model call fails, the system will automatically switch and attempt to call an alternative model, significantly improving service stability and reliability.

You can specify the fallback strategy by passing custom fallback and fallback_config parameters in the API request body.

Request Body

Request Body

  • Name
    fallback
    Type
    string
    Optional
    Optional
    Description
    Defines the fallback strategy when a request fails. Default is auto.
    • disabled: Disables the fallback mechanism.
    • auto: Automatic mode, ignores the fallback_config parameter, and is handled by the system automatically.
    • enabled: Enables fallback, using user-defined fallback_config configuration.
    • strict: Strict mode, enables fallback and uses fallback_config. In this mode, the outermost model parameter will be ignored, and it will start trying from step 1 in the configuration.
  • Name
    fallback_config
    Type
    object
    Optional
    Optional
    Description
    Detailed configuration for custom fallback mechanism. Only takes effect when fallback is set to enabled or strict.
    • Name
      strategy
      Type
      object
      Required
      Required
      Description
      Global execution strategy, defining how to schedule the various steps in steps.
    • Name
      global_timeout_ms
      Type
      integer
      Optional
      Optional
      Description
      Global circuit breaker timeout (in milliseconds). The entire fallback chain (including all steps and retries) must complete within this time, otherwise the task will be forcefully terminated. For example, 180000 represents 3 minutes.
    • Name
      max_total_retries
      Type
      integer
      Optional
      Optional
      Description
      The upper limit of the sum of all step retry counts allowed in the entire fallback chain. Used to prevent resource abuse due to configuration errors.
    • Name
      steps
      Type
      array
      Required
      Required
      Description
      Defines the list of specific execution steps.

Request

POST
/beta/v1/chat/completions
curl https://api.easytransnote.com/beta/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -d '{
    "model": "gemini-2.5-pro",
    "messages": [
      {
        "role": "user",
        "content": "2020年世界杯冠军是谁?"
      }
    ],
    "temperature": 0.7,
    "max_tokens": 150,
    "fallback": "enabled",
    "fallback_config": {
      "strategy": {
        "mode": "sequential"
      },
      "global_timeout_ms": 180000,
      "max_total_retries": 5,
      "steps": [
        {
          "step_id": "step1_claude",
          "model": "claude-sonnet-4-5-20250929",
          "timeout_ms": 30000,
          "retry_policy": {
              "max_retries": 2,
              "backoff_factor": 2,
              "jitter_ms": 250
          },
          "fail_on": {
              "status_code": [400, 401, 403],
              "error_contains": ["invalid_request_error", "unauthenticated"],
          },
          "parameters": {
            "temperature": 1
          }
        }
      ]
    }
  }'

Adaptive Memory

Traditional large language model APIs usually operate in a stateless manner, which requires developers to explicitly maintain conversation context, or accept that the model forgets user preferences and historical information when context is limited.

OriginRouter's Adaptive Memory Engine introduces a persistent cognitive mechanism at the /chat/completions interface layer for structured processing and management of conversation information. While supporting cross-session semantic continuity, this mechanism efficiently organizes and reuses conversation context, allowing the model to significantly reduce token usage costs in long conversation scenarios while maintaining reasoning consistency.

This feature includes two core dimensions of memory capability: Session Context Cache and Dynamic User Profiling.

  • Session Context Cache: OriginRouter's context cache is based on a self-designed message grouping algorithm that can identify complete interaction units in conversations and manage them in a structured way. In long conversation scenarios, this mechanism can significantly reduce model inference costs while maintaining semantic coherence.

    • Long Conversation Optimization and Token Savings: The system automatically prunes redundant information, providing only logically complete interaction units as model input, thereby reducing token consumption per API call and improving inference efficiency.
    • Key Settings Lock: In multi-turn interactions, the system keeps initial system instructions and key constraint conditions unchanged, preventing the sliding window truncation from causing the model to forget identity or task constraints, thus ensuring behavioral consistency in long-cycle interactions.
    • Cross-Model and Flow Adaptation: Historical conversation data and context management logic can be seamlessly applied to different underlying large models without refactoring existing code, and without requiring separate adaptation for knowledge bases or third-party business processes, reducing technical migration and maintenance costs.
  • Dynamic User Profiling (Holographic User Profiling): OriginRouter can transform each interaction with AI into a systematic user profile, achieving long-term management of user preferences and behavioral patterns. The system extracts and structures key information from historical conversations, allowing the model to continue context and adapt to user characteristics in subsequent sessions.

    • Cross-Session Long-Term Memory: Breaks through the limitations of traditional stateless models that "forget after chatting." Even in new sessions months later, the model can still recognize user historical preferences and directly provide suggestions based on past information.
    • Intelligent Adaptation and Personalization: The model can automatically adjust response strategies based on user characteristics. For example, providing more explanatory information for beginners, and more direct technical implementation solutions for experienced developers.
    • Zero-Intervention Personalization: Users don't need to manually configure or repeatedly input background information; the system automatically maintains consistency of user identity, preferences, and behavioral patterns, achieving global memory synchronization.

Request Body

Request Body

  • Name
    memory_id
    Type
    string
    Required
    Required
    Description
    Unique identifier for the memory entity. Users need to generate it themselves and ensure its uniqueness within the user's namespace.After enabling this parameter, the server will fully manage conversation history. In subsequent /chat/completions calls, the system supports full upload (complete messages) or incremental upload (only the latest messages), both have the same effect, and the system will automatically handle context concatenation.Currently, this feature is free during the Beta period. Quota limits for different subscription levels are as follows:
    • Personal Free: 10
    • Personal Pro: 50
    • Team Pro / Enterprise: 100
  • Name
    memory_config
    Type
    object
    Optional
    Optional
    Description
    Configuration object for fine-grained control of the memory system behavior.
    • Name
      memory_mode
      Type
      read_write | read_only
      Optional
      Optional
      Description
      Sets the memory interaction mode. Default is read_write.
      • read_write: Utilizes history in real-time to assist generation and updates the memory store based on new conversations. Uses a strong consistency lock (concurrency limit of 1), which is held until the current request fully completes. Messages are vectorized and summarized in a background async queue (typically within 10 minutes).
      • read_only: Only retrieves memory to assist generation, without writing or updating. Provides higher throughput (concurrency limit of 5).
    • Name
      history_window
      Type
      integer
      Optional
      Optional
      Description
      Short-term memory window size (unit: conversation turns). Default is 10, minimum is 5.The latest history_window groups of conversations within this window will retain Raw Text, not compressed, and be sent to the large model in full to ensure the accuracy of the recency effect.In read-write mode, if the archiving of historical records outside the window is not completed, the system will block the request until consistency synchronization is completed.
    • Name
      summary_window
      Type
      integer
      Optional
      Optional
      Description
      Summary trigger step size (unit: conversation turns). Default is 5, minimum is 5.Whenever the newly generated conversation turns reach summary_window groups and slide out of the history_window protection zone, the system automatically triggers an async task to perform semantic compression and summarization on this part of the history.
    • Name
      personal_memory
      Type
      boolean
      Optional
      Optional
      Description
      Whether to enable personal profile memory. Default is false.This feature is independent of specific memory_id and is used to maintain user-level preferences and settings. When enabled, the system automatically extracts user characteristics (such as profession, language style, special requirements) from conversations and shares them across different sessions to provide more personalized responses.

Request

POST
/beta/v1/chat/completions
curl https://api.easytransnote.com/beta/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -d '{
    "model": "gemini-2.5-pro",
    "messages": [
      {
        "role": "user",
        "content": "记得我之前提到的项目代号吗?请帮我生成一份周报大纲。"
      }
    ],
    "temperature": 0.7,
    "memory_id": "mem_user_123456_project_beta",
    "memory_config": {
      "memory_mode": "read_write",
      "history_window": 10,
      "summary_window": 5,
      "personal_memory": true
    }
  }'

Was this page helpful?