model: openai:gpt-3.5-turbo      # LLM model
temperature: 1.0                 # LLM temperature
save: true                       # Whether to save the message
save_session: null               # Whether to save the session, if null, asking
highlight: true                  # Set false to turn highlight
light_theme: false               # Whether to use a light theme
wrap: no                         # Specify the text-wrapping mode (no, auto, <max-width>)
wrap_code: false                 # Whether wrap code block
ctrlc_exit: false                # Whether to exit REPL when Ctrl+C is pressed
auto_copy: false                 # Automatically copy the last output to the clipboard
keybindings: emacs               # REPL keybindings. (emacs, vi)
prelude: ''                      # Set a default role or session (role:<name>, session:<name>)

# Compress session if tokens exceed this value (valid when >=1000)
compress_threshold: 1000
# The prompt for summarizing session messages
summarize_prompt: 'Summarize the discussion briefly in 200 words or less to use as a prompt for future context.'
# The prompt for the summary of the session
summary_prompt: 'This is a summary of the chat history as a recap: '

# Custom REPL prompt, see https://github.com/sigoden/aichat/wiki/Custom-REPL-Prompt
left_prompt: '{color.green}{?session {session}{?role /}}{role}{color.cyan}{?session )}{!session >}{color.reset} '
right_prompt: '{color.purple}{?session {?consume_tokens {consume_tokens}({consume_percent}%)}{!consume_tokens {consume_tokens}}}{color.reset}'

clients:
  # All clients have the following configuration:
  # - type: xxxx
  #   name: nova                                      # Only use it to distinguish clients with the same client type. Optional
  #   extra:
  #     proxy: socks5://127.0.0.1:1080                # Specify https/socks5 proxy server. Note HTTPS_PROXY/ALL_PROXY also works.
  #     connect_timeout: 10                           # Set a timeout in seconds for connect to server

  # See https://platform.openai.com/docs/quickstart
  - type: openai
    api_key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    api_base: https://api.openai.com/v1               # Optional field
    organization_id: org-xxxxxxxxxxxxxxxxxxxxxxxx     # Optional field

  # See https://ai.google.dev/docs
  - type: gemini
    api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    block_threshold: BLOCK_NONE                       # Optional field, choices: BLOCK_NONE, BLOCK_ONLY_HIGH, BLOCK_MEDIUM_AND_ABOVE, BLOCK_LOW_AND_ABOVE

  # See https://docs.anthropic.com/claude/reference/getting-started-with-the-api
  - type: claude
    api_key: sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  # See https://docs.mistral.ai/
  - type: mistral
    api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  # See https://docs.cohere.com/docs/the-cohere-platform
  - type: cohere
    api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  # Any openai-compatible API providers 
  - type: openai-compatible
    name: localai
    api_base: http://localhost:8080/v1
    api_key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    chat_endpoint: /chat/completions                  # Optional field
    models:
      - name: llama2
        max_input_tokens: 8192
        extra_fields:                                 # Optional field, set custom parameters
          key: value
      - name: llava
        max_input_tokens: 8192
        capabilities: text,vision                     # Optional field, choices: text, vision

  # See https://github.com/jmorganca/ollama
  - type: ollama
    api_base: http://localhost:11434
    api_key: Basic xxx                                # Set authorization header
    chat_endpoint: /chat                              # Optional field
    models:
      - name: llama2
        max_input_tokens: 8192

  # See https://learn.microsoft.com/en-us/azure/ai-services/openai/chatgpt-quickstart
  - type: azure-openai
    api_base: https://{RESOURCE}.openai.azure.com
    api_key: xxx
    models:
      - name: MyGPT4                                  # Model deployment name
        max_input_tokens: 8192

  # See https://cloud.google.com/vertex-ai
  - type: vertexai
    api_base: https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models
    # Setup Application Default Credentials (ADC) file, Optional field
    # Run `gcloud auth application-default login` to setup adc
    # see https://cloud.google.com/docs/authentication/external/set-up-adc
    adc_file: <path-to/gcloud/application_default_credentials.json> 
    block_threshold: BLOCK_ONLY_HIGH                  # Optional field, choices: BLOCK_NONE, BLOCK_ONLY_HIGH, BLOCK_MEDIUM_AND_ABOVE, BLOCK_LOW_AND_ABOVE

  # See https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html
  - type: ernie
    api_key: xxxxxxxxxxxxxxxxxxxxxxxx
    secret_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  # See https://help.aliyun.com/zh/dashscope/
  - type: qianwen
    api_key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  # See https://platform.moonshot.cn/docs/intro
  - type: moonshot
    api_key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx