Skip to content

seaticket_config.yaml

Besides .env for general settings, the seaticket_config.yaml is used to specify the detailed configurations of the all components in SeaTicket docker.

File structure of seaticket_config.yaml

seaticket_config.yaml consists of the following sections (i.e., global and name of each component):

global:
  # ... configurations for all components
seaqa-ai:
  # ... special configurations for seaqa-ai
seaqa-events:
  # ... special configurations for seaqa-events
seaqa-indexer:
  # ... special configurations for seaqa-indexer
seaqa-web:
  # ... special configurations for seaqa-web

Global settings

The global section is generally used to specify configuration items that are common to all SeaTickets components.

Internal server URLs used for communication between SeaTicket components (cluster only)

In cluster mode, you need to specify the URLs used for internal communication between components via seaticket_config.yaml:

global:
  # ... other configurations
  SEAQA_AI_INNER_SERVER_URL: http://<your seaqa-ai server host>:8887
  SEAQA_INDEXER_INNER_SERVER_URL: http://<your seaqa-indexer server host>:8888
  SEAQA_EVENTS_INNER_SERVER_URL: http://<your seaqa-events server host>:6001

LLMs configurations

To ensure the SeaTicket service functions normally, please ensure that seaticket_config.yaml contains at least one valid LLM

For LLMs configurations, you should configure a list option LLM_MODELS in seaticket_config.yaml:

global:
  LLM_MODELS:
    # <model 1 configuration>
    - type: 'your_llm_provider' # required, please refer https://docs.litellm.ai/docs/providers for the details
      model: 'your_model_id' # required
      url: 'llm_endpoint' # required for some provider (or type)
      key: 'llm_secret_key' # required for non-self deploy LLM server (including OpenAI proxy)
      label: 'display_name' # optional, display name on SeaTicket chat page, default to option `model` if not set
      hidden: false # optional, hidden on SeaTicket chat page but still can be used with API calling and other components, default to `false`
      disable: false # optional, disable this LLM, default to `false`
      tier: # optional (must be one of `low`, `medium`, or `high`.), used to specify the inference strength of the model to facilitate invocation between different tasks. If two LLMs have the same `tier`, only the LLM that specifies that `tier` will be used, as specified by the first item in the `LLM_MODELS` list.
      price: # required only need to specify this when you need to track user token usage.
        input_tokens: 1 # dollars / 1 M tokens (non-cached)
        output_tokens: 10 # dollars / 1 M tokens

    # <model 2 configuration>
    # - type: ...

    # <model 3 configuration>
    # - type : ...

LLMs reference configuration

global:
# ...
LLM_MODELS:
  - type: openai
    model: <your model-id>  # e.g., gpt-4o-mini
    key: <your openai LLM access key>
global:
# ...
LLM_MODELS:
  - type: gemini
    model: <your model-id>  # e.g., gemini-2.5-flash
    key: <your gemini LLM access key>
global:
# ...
LLM_MODELS:
  - type: dashscope
    model: <your model-id>  # e.g., qwen3-max
    key: <your qwen LLM access key>
global:
# ...
LLM_MODELS:
  - type: deepseek
    model: <model_id> # e.g. deepseek-chat
    key: <your LLM access key>
global:
# ...
LLM_MODELS:
  - type: azure
    model: <your deployment name>
    url: # your deployment url, leave blank to use default endpoint
    key: <your LLM access key>
global:
# ...
LLM_MODELS:
  - type: ollama
    model: <your model-id>
    url: <your LLM endpoint>
    key: <your LLM access key>
global:
# ...
LLM_MODELS:
  - type: huggingface
    model: <model provider>/<model-id>
    url: <your huggingface API endpoint>
    key: <your huggingface API key>

Seafile AI utilizes LiteLLM to interact with LLM services. For a complete list of supported LLM providers, please refer to this documentation. Then fill the following fields in your seaticket_config.yaml:

For example, if you are using a LLM service with OpenAI-compatible endpoints, you should set type to other, and set other LLM configuration items accurately.

Embedding model

To ensure the SeaTicket service functions normally, please ensure that seaticket_config.yaml has specified embedding model

The configuration of embedding models is similar to that of an element in the LLM_MODELS list:

global:
  EMBEDDING_MODEL:
    type: ...
    model: embedding_model_id
    url: embedding_model_endpoint # required for some provider (or type)
    key: embedding_model_secret_key # required for non-self deployment LLM server (including OpenAI-proxy)
    price: 0.02 # dollars / 1 M input tokens, required only need to specify this when you need to track user token usage.

Thought process

The thought process is used to display detailed debug information about LLM calls, including system prompts, context, tool call history, and cost statistics. It will be displayed in the project's Chat and Agent modules.

global:
  THOUGHT_PROCESS: # Configure which content to record in the thought process.
    enabled: false # set to `true` to record in the thought process (global switcher)
    tasks:
      enabled: true
      system_prompt: false
      user_input: true
      user_input_raw: false
    context: false
    tool_details: false

seaqa-ai settings

The following are the default values, normally, you don't need to make any additional settings for this part

seaqa-ai:
  COMPLETION_MAX_RETRIES: 2 # Maximum number of chating completion retries with LLM
  COMPLETION_RETRY_INTERVAL: 0.0 # Retry interval when AI chating completion fails
  TOOL_CALL_MAX_RETRIES: 2 # Maximum number of executing tool retries with LLM
  TOOL_CALL_RETRY_INTERVAL: 1.0 # Retry interval when tool executes fails
  AI_UTILS_TIER: # The tier level required to configure AI functionality (must be one of `low`, `medium`, and `high`) will be matched in `LLM_MODELS`.
    generate_ticket: low
    generate_summary: low
    rerank_relevance: medium

Agent configurations

seaqa-ai:
  AGENT:
    # --- Max records counter ---
    max_tickets_per_run: 100 # Maximum tickets analyzed per agent run
    max_github_issues_per_run: 100 # Maximum GitHub issues analyzed per agent run
    max_analysis_steps: 10 # Maximum analysis steps per agent task
    max_handling_steps: 5 # Maximum handling steps per agent task

    # --- Agent manager timing (seconds) ---
    enqueue_pending_events_check_intetval: 5 # Interval to check and flush pending events
    enqueue_debounce_interval: 600 # Minimum seconds between two enqueues for the same record
    enqueue_ticket_initial_debounce: 300 # Initial debounce seconds after first ticket event
    timed_scan_interval: 3600 # Timed scanner execution interval
    timed_scan_project_cooldown: 86400 # Cooldown before re-scanning the same project

seaqa-events settings

seaqa-events:
  AI_STATS: # optional
    enabled: true # Enable AI tokens usage statistics (default is `true`)