aichat/config.example.yaml

303 lines
14 KiB
YAML
Raw Normal View History

2024-06-22 12:24:44 +00:00
# ---- llm ----
2024-06-23 14:09:47 +00:00
model: openai:gpt-4o # Specify the LLM to use
temperature: null # Set default temperature parameter
2024-06-23 11:31:29 +00:00
top_p: null # Set default top-p parameter, range (0, 1)
2024-06-22 12:24:44 +00:00
# ---- behavior ----
2024-06-22 12:24:44 +00:00
save: true # Indicates whether to persist the message
2024-06-23 14:09:47 +00:00
keybindings: emacs # Choose keybinding style (emacs, vi)
buffer_editor: null # Command used to edit the current input with ctrl+o, env: EDITOR
wrap: no # Controls text wrapping (no, auto, <max-width>)
wrap_code: false # Enables or disables wrapping of code blocks
2024-06-22 12:24:44 +00:00
# ---- prelude ----
prelude: null # Set a default role or session to start with (e.g. role:<name>, session:<name>)
2024-06-22 12:24:44 +00:00
repl_prelude: null # Overrides the `prelude` setting specifically for conversations started in REPL
agent_prelude: null # Set a session to use when starting a agent. (e.g. temp, default)
2024-06-22 12:24:44 +00:00
# ---- session ----
# Controls the persistence of the session. if true, auto save; if false, not save; if null, asking the user
2024-06-22 12:24:44 +00:00
save_session: null
# Compress session when token count reaches or exceeds this threshold
2024-06-22 12:24:44 +00:00
compress_threshold: 4000
# Text prompt used for creating a concise summary of session message
summarize_prompt: 'Summarize the discussion briefly in 200 words or less to use as a prompt for future context.'
# Text prompt used for including the summary of the entire session
summary_prompt: 'This is a summary of the chat history as a recap: '
2023-10-30 11:52:51 +00:00
2024-06-23 14:09:47 +00:00
# ---- function-calling & agent ----
# Visit https://github.com/sigoden/llm-functions for setup instructions
function_calling: true # Enables or disables function calling (Globally).
mapping_tools: # Alias for a tool or toolset
2024-07-09 01:36:50 +00:00
# fs: 'fs_cat,fs_ls,fs_mkdir,fs_rm,fs_write'
use_tools: null # Which tools to use by default
2024-06-23 14:09:47 +00:00
# Per-Agent configuration
2024-06-21 22:54:03 +00:00
agents:
- name: todo-sh
model: null
temperature: null
top_p: null
2024-06-23 14:09:47 +00:00
# ---- RAG ----
rag_embedding_model: null # Specifies the embedding model to use
rag_reranker_model: null # Specifies the rerank model to use
rag_top_k: 4 # Specifies the number of documents to retrieve
rag_chunk_size: null # Specifies the chunk size
rag_chunk_overlap: null # Specifies the chunk overlap
rag_min_score_vector_search: 0 # Specifies the minimum relevance score for vector-based searching
rag_min_score_keyword_search: 0 # Specifies the minimum relevance score for keyword-based searching
rag_min_score_rerank: 0 # Specifies the minimum relevance score for reranking
# Defines the query structure using variables like __CONTEXT__ and __INPUT__ to tailor searches to specific needs
rag_template: |
Use the following context as your learned knowledge, inside <context></context> XML tags.
<context>
__CONTEXT__
</context>
When answer to user:
- If you don't know, just say that you don't know.
- If you don't know when you are not sure, ask for clarification.
Avoid mentioning that you obtained the information from the context.
And answer according to the language of the user's question.
Given the context information, answer the query.
Query: __INPUT__
# Define document loaders to control how RAG and `.file`/`--file` load files of specific formats.
document_loaders:
# You can add custom loaders using the following syntax:
# <file-extension>: <command-to-load-the-file>
# Note: Use `$1` for input file and `$2` for output file. If `$2` is omitted, use stdout as output.
pdf: 'pdftotext $1 -' # Load .pdf file, see https://poppler.freedesktop.org
docx: 'pandoc --to plain $1' # Load .docx file
# xlsx: 'ssconvert $1 $2' # Load .xlsx file
# html: 'pandoc --to plain $1' # Load .html file
recursive_url: 'rag-crawler $1 $2' # Load websites, see https://github.com/sigoden/rag-crawler
2024-06-23 14:09:47 +00:00
# ---- apperence ----
highlight: true # Controls syntax highlighting
light_theme: false # Activates a light color theme when true. env: AICHAT_LIGHT_THEME
# Custom REPL prompt, see https://github.com/sigoden/aichat/wiki/Custom-REPL-Prompt for more details
left_prompt:
'{color.green}{?session {?agent {agent}>}{session}{?role /}}{!session {?agent {agent}>}}{role}{?rag @{rag}}{color.cyan}{?session )}{!session >}{color.reset} '
right_prompt:
'{color.purple}{?session {?consume_tokens {consume_tokens}({consume_percent}%)}{!consume_tokens {consume_tokens}}}{color.reset}'
# ---- clients ----
2023-10-31 08:50:08 +00:00
clients:
# All clients have the following configuration:
# - type: xxxx
# name: xxxx # Only use it to distinguish clients with the same client type. Optional
# models:
2024-06-23 11:31:29 +00:00
# - name: xxxx # Chat model
# max_input_tokens: 100000
# supports_vision: true
2024-06-01 02:45:53 +00:00
# supports_function_calling: true
2024-06-23 11:31:29 +00:00
# - name: xxxx # Embedding model
# type: embedding
# max_input_tokens: 2048
# default_chunk_size: 1500
# max_batch_size: 100
# - name: xxxx # Reranker model
# type: reranker
2024-06-20 22:00:26 +00:00
# max_input_tokens: 2048
# patches:
# <regex>: # The regex to match model names, e.g. '.*' 'gpt-4o' 'gpt-4o|gpt-4-.*'
# chat_completions_body: # The JSON to be merged with the chat completions request body.
2023-10-31 08:50:08 +00:00
# extra:
# proxy: socks5://127.0.0.1:1080 # Set https/socks5 proxy. ENV: HTTPS_PROXY/https_proxy/ALL_PROXY/all_proxy
# connect_timeout: 10 # Set timeout in seconds for connect to api
2023-10-31 08:50:08 +00:00
2023-10-30 11:52:51 +00:00
# See https://platform.openai.com/docs/quickstart
2023-10-31 08:50:08 +00:00
- type: openai
2024-04-30 05:15:13 +00:00
api_key: sk-xxx # ENV: {client}_API_KEY
api_base: https://api.openai.com/v1 # ENV: {client}_API_BASE
organization_id: org-xxx # Optional
2023-10-30 11:52:51 +00:00
# For any platform compatible with OpenAI's API
- type: openai-compatible
2024-06-23 14:09:47 +00:00
name: local
2024-04-30 05:15:13 +00:00
api_base: http://localhost:8080/v1 # ENV: {client}_API_BASE
api_key: xxx # ENV: {client}_API_KEY
chat_endpoint: /chat/completions # Optional
models:
- name: llama3
max_input_tokens: 8192
2023-12-19 23:49:05 +00:00
# See https://ai.google.dev/docs
- type: gemini
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
patches:
'.*':
chat_completions_body:
safetySettings:
- category: HARM_CATEGORY_HARASSMENT
threshold: BLOCK_NONE
- category: HARM_CATEGORY_HATE_SPEECH
threshold: BLOCK_NONE
- category: HARM_CATEGORY_SEXUALLY_EXPLICIT
threshold: BLOCK_NONE
- category: HARM_CATEGORY_DANGEROUS_CONTENT
threshold: BLOCK_NONE
2023-10-31 08:50:08 +00:00
2024-02-28 00:22:15 +00:00
# See https://docs.anthropic.com/claude/reference/getting-started-with-the-api
- type: claude
2024-04-30 05:15:13 +00:00
api_key: sk-ant-xxx # ENV: {client}_API_KEY
2024-02-28 00:22:15 +00:00
2024-04-10 10:52:21 +00:00
# See https://docs.mistral.ai/
- type: openai-compatible
name: mistral
api_base: https://api.mistral.ai/v1
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
2024-02-28 00:22:15 +00:00
2024-04-10 10:52:21 +00:00
# See https://docs.cohere.com/docs/the-cohere-platform
- type: cohere
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
2024-04-10 10:52:21 +00:00
2024-04-25 22:57:23 +00:00
# See https://docs.perplexity.ai/docs/getting-started
- type: openai-compatible
name: perplexity
api_base: https://api.perplexity.ai
2024-04-30 05:15:13 +00:00
api_key: pplx-xxx # ENV: {client}_API_KEY
2024-04-25 22:57:23 +00:00
2024-04-25 12:59:56 +00:00
# See https://console.groq.com/docs/quickstart
- type: openai-compatible
name: groq
api_base: https://api.groq.com/openai/v1
2024-04-30 05:15:13 +00:00
api_key: gsk_xxx # ENV: {client}_API_KEY
2024-04-25 12:59:56 +00:00
2023-12-19 23:49:05 +00:00
# See https://github.com/jmorganca/ollama
- type: ollama
2024-04-30 05:15:13 +00:00
api_base: http://localhost:11434 # ENV: {client}_API_BASE
api_auth: Basic xxx # ENV: {client}_API_AUTH
models: # Required
- name: llama3
max_input_tokens: 8192
- name: all-minilm:l6-v2
type: embedding
max_chunk_size: 1000
2023-12-19 23:49:05 +00:00
# See https://learn.microsoft.com/en-us/azure/ai-services/openai/chatgpt-quickstart
- type: azure-openai
2024-04-30 05:15:13 +00:00
api_base: https://{RESOURCE}.openai.azure.com # ENV: {client}_API_BASE
api_key: xxx # ENV: {client}_API_KEY
models: # Required
- name: gpt-35-turbo # Model deployment name
max_input_tokens: 8192
2023-12-19 12:37:53 +00:00
2024-02-28 00:22:15 +00:00
# See https://cloud.google.com/vertex-ai
- type: vertexai
2024-05-07 08:40:18 +00:00
project_id: xxx # ENV: {client}_PROJECT_ID
location: xxx # ENV: {client}_LOCATION
# Specifies a application-default-credentials (adc) file, Optional field
# Run `gcloud auth application-default login` to init the adc file
2024-02-28 00:22:15 +00:00
# see https://cloud.google.com/docs/authentication/external/set-up-adc
adc_file: <path-to/gcloud/application_default_credentials.json>
patches:
'gemini-.*':
chat_completions_body:
safetySettings:
- category: HARM_CATEGORY_HARASSMENT
threshold: BLOCK_ONLY_HIGH
- category: HARM_CATEGORY_HATE_SPEECH
threshold: BLOCK_ONLY_HIGH
- category: HARM_CATEGORY_SEXUALLY_EXPLICIT
threshold: BLOCK_ONLY_HIGH
- category: HARM_CATEGORY_DANGEROUS_CONTENT
threshold: BLOCK_ONLY_HIGH
# See https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude
- type: vertexai-claude
2024-05-07 08:40:18 +00:00
project_id: xxx # ENV: {client}_PROJECT_ID
location: xxx # ENV: {client}_LOCATION
# Specifies a application-default-credentials (adc) file, Optional field
# Run `gcloud auth application-default login` to init the adc file
# see https://cloud.google.com/docs/authentication/external/set-up-adc
adc_file: <path-to/gcloud/application_default_credentials.json>
2024-02-28 00:22:15 +00:00
2024-04-28 03:27:06 +00:00
# See https://docs.aws.amazon.com/bedrock/latest/userguide/
- type: bedrock
2024-05-07 08:40:18 +00:00
access_key_id: xxx # ENV: {client}_ACCESS_KEY_ID
secret_access_key: xxx # ENV: {client}_SECRET_ACCESS_KEY
region: xxx # ENV: {client}_REGION
2024-04-28 03:27:06 +00:00
2024-04-29 23:07:09 +00:00
# See https://developers.cloudflare.com/workers-ai/
- type: cloudflare
2024-04-30 05:15:13 +00:00
account_id: xxx # ENV: {client}_ACCOUNT_ID
api_key: xxx # ENV: {client}_API_KEY
2024-04-29 23:07:09 +00:00
# See https://replicate.com/docs
- type: replicate
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
2024-04-29 23:07:09 +00:00
2023-11-04 00:54:40 +00:00
# See https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html
- type: ernie
2024-05-07 08:40:18 +00:00
api_key: xxx # ENV: {client}_API_KEY
secret_key: xxxx # ENV: {client}_SECRET_KEY
2023-11-04 01:51:01 +00:00
# See https://help.aliyun.com/zh/dashscope/
- type: qianwen
2024-05-07 08:40:18 +00:00
api_key: sk-xxx # ENV: {client}_API_KEY
2024-04-25 13:19:04 +00:00
# See https://platform.moonshot.cn/docs/intro
- type: openai-compatible
name: moonshot
api_base: https://api.moonshot.cn/v1
2024-05-07 08:40:18 +00:00
api_key: sk-xxx # ENV: {client}_API_KEY
2024-04-29 01:27:11 +00:00
2024-05-07 08:16:18 +00:00
# See https://platform.deepseek.com/api-docs/
- type: openai-compatible
name: deepseek
2024-05-07 08:40:18 +00:00
api_key: sk-xxx # ENV: {client}_API_KEY
# See https://open.bigmodel.cn/dev/howuse/introduction
- type: openai-compatible
name: zhipuai
api_key: xxx # ENV: {client}_API_KEY
2024-05-07 08:16:18 +00:00
2024-06-18 04:37:25 +00:00
# See https://platform.lingyiwanwu.com/docs
- type: openai-compatible
name: lingyiwanwu
api_key: xxx # ENV: {client}_API_KEY
# See https://deepinfra.com/docs
- type: openai-compatible
name: deepinfra
api_base: https://api.deepinfra.com/v1/openai
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
# See https://readme.fireworks.ai/docs/quickstart
- type: openai-compatible
name: fireworks
api_base: https://api.fireworks.ai/inference/v1
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
# See https://openrouter.ai/docs#quick-start
- type: openai-compatible
name: openrouter
api_base: https://openrouter.ai/api/v1
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
# See https://octo.ai/docs/getting-started/quickstart
- type: openai-compatible
name: octoai
api_base: https://text.octoai.run/v1
2024-04-30 05:15:13 +00:00
api_key: xxx # ENV: {client}_API_KEY
# See https://docs.together.ai/docs/quickstart
- type: openai-compatible
name: together
api_base: https://api.together.xyz/v1
api_key: xxx # ENV: {client}_API_KEY
# See https://jina.ai
- type: rag-dedicated
name: jina
api_base: https://api.jina.ai/v1
api_key: xxx # ENV: {client}_API_KEY
# See https://docs.voyageai.com/docs/introduction
- type: rag-dedicated
name: voyageai
api_base: https://api.voyageai.ai/v1
api_key: xxx # ENV: {client}_API_KEY