From 54836c9435dbff7d0c0812696930f60ec34cbfed Mon Sep 17 00:00:00 2001 From: Yuri Zamyatin Date: Sun, 22 Jun 2025 22:35:30 +0000 Subject: [PATCH] aichat --- arch-root/install.sh | 4 +- arch-user/bin/ai | 6 +++ arch-user/config/aichat/config.yaml.tmpl | 69 ++++++++++++++++++++++++ arch-user/config/aichat/roles/ds-free.md | 3 ++ arch-user/config/aichat/roles/ds.md | 3 ++ arch-user/config/aichat/roles/gpt.md | 3 ++ arch-user/config/aichat/roles/opus.md | 3 ++ arch-user/config/aichat/roles/search.md | 1 + arch-user/config/aichat/roles/sonar.md | 3 ++ arch-user/config/aichat/roles/sonnet.md | 3 ++ arch-user/config/workspace.conf | 1 + 11 files changed, 97 insertions(+), 2 deletions(-) create mode 100755 arch-user/bin/ai create mode 100644 arch-user/config/aichat/config.yaml.tmpl create mode 100644 arch-user/config/aichat/roles/ds-free.md create mode 100644 arch-user/config/aichat/roles/ds.md create mode 100644 arch-user/config/aichat/roles/gpt.md create mode 100644 arch-user/config/aichat/roles/opus.md create mode 120000 arch-user/config/aichat/roles/search.md create mode 100644 arch-user/config/aichat/roles/sonar.md create mode 100644 arch-user/config/aichat/roles/sonnet.md diff --git a/arch-root/install.sh b/arch-root/install.sh index e797e9e..a8a8ede 100755 --- a/arch-root/install.sh +++ b/arch-root/install.sh @@ -6,7 +6,7 @@ PACKAGES=( linux base linux-firmware lvm2 sudo polkit # base pulseaudio pulseaudio-bluetooth bluez bluez-utils networkmanager udisks2 # device management - openssh sysstat screen man-db # system + openssh sysstat screen man-db which # system nodejs dash jq # runtime qemu-system-x86 # virt @@ -18,7 +18,7 @@ PACKAGES=( git zip # data processing gnupg pass pass-otp # crypt imv mpv imagemagick gimp # media - libqalculate translate-shell # utils + aichat libqalculate translate-shell # utils sqlitebrowser qt5-wayland # db libreoffice-still # docs diff --git a/arch-user/bin/ai b/arch-user/bin/ai new file mode 100755 index 0000000..a300573 --- /dev/null +++ b/arch-user/bin/ai @@ -0,0 +1,6 @@ +#!/bin/sh + +role="$1" +shift + +aichat --role "$role" "$@" diff --git a/arch-user/config/aichat/config.yaml.tmpl b/arch-user/config/aichat/config.yaml.tmpl new file mode 100644 index 0000000..6ef0edc --- /dev/null +++ b/arch-user/config/aichat/config.yaml.tmpl @@ -0,0 +1,69 @@ +# see https://github.com/sigoden/aichat/blob/main/config.example.yaml +# see https://github.com/sigoden/aichat/blob/main/models.yaml + +model: openrouter:anthropic/claude-sonnet-4 +function_calling: false + +clients: + +- type: openai-compatible + name: openrouter + api_base: https://openrouter.ai/api/v1 + api_key: {{ .user.AI_OPENROUTER_KEY }} + models: + + - name: anthropic/claude-opus-4 + max_input_tokens: 200000 + max_output_tokens: 20000 + require_max_tokens: true + input_price: 15 + output_price: 75 + supports_vision: true + supports_function_calling: true + patch: + body: + reasoning: + effort: high + + - name: anthropic/claude-sonnet-4 + max_input_tokens: 200000 + max_output_tokens: 20000 + require_max_tokens: true + input_price: 3 + output_price: 15 + supports_vision: true + supports_function_calling: true + patch: + body: + reasoning: + effort: high + + + - name: deepseek/deepseek-r1-0528 + max_input_tokens: 65536 + input_price: 0.28 + output_price: 1.12 + + - name: deepseek/deepseek-r1-0528:free + max_input_tokens: 65536 + input_price: 0 + output_price: 0 + + + - name: perplexity/sonar-pro + max_input_tokens: 200000 + input_price: 3 + output_price: 15 + + - name: perplexity/sonar + max_input_tokens: 127072 + input_price: 1 + output_price: 1 + + - name: openai/gpt-4.1 + max_input_tokens: 1047576 + max_output_tokens: 32768 + input_price: 2 + output_price: 8 + supports_vision: true + supports_function_calling: true diff --git a/arch-user/config/aichat/roles/ds-free.md b/arch-user/config/aichat/roles/ds-free.md new file mode 100644 index 0000000..488324d --- /dev/null +++ b/arch-user/config/aichat/roles/ds-free.md @@ -0,0 +1,3 @@ +--- +model: openrouter:deepseek/deepseek-r1-0528:free +--- diff --git a/arch-user/config/aichat/roles/ds.md b/arch-user/config/aichat/roles/ds.md new file mode 100644 index 0000000..fc0780c --- /dev/null +++ b/arch-user/config/aichat/roles/ds.md @@ -0,0 +1,3 @@ +--- +model: openrouter:deepseek/deepseek-r1-0528 +--- diff --git a/arch-user/config/aichat/roles/gpt.md b/arch-user/config/aichat/roles/gpt.md new file mode 100644 index 0000000..e0e6013 --- /dev/null +++ b/arch-user/config/aichat/roles/gpt.md @@ -0,0 +1,3 @@ +--- +model: openrouter:openai/gpt-4.1 +--- diff --git a/arch-user/config/aichat/roles/opus.md b/arch-user/config/aichat/roles/opus.md new file mode 100644 index 0000000..05b3314 --- /dev/null +++ b/arch-user/config/aichat/roles/opus.md @@ -0,0 +1,3 @@ +--- +model: openrouter:anthropic/claude-opus-4 +--- diff --git a/arch-user/config/aichat/roles/search.md b/arch-user/config/aichat/roles/search.md new file mode 120000 index 0000000..dd25b67 --- /dev/null +++ b/arch-user/config/aichat/roles/search.md @@ -0,0 +1 @@ +sonar.md \ No newline at end of file diff --git a/arch-user/config/aichat/roles/sonar.md b/arch-user/config/aichat/roles/sonar.md new file mode 100644 index 0000000..8c29adc --- /dev/null +++ b/arch-user/config/aichat/roles/sonar.md @@ -0,0 +1,3 @@ +--- +model: openrouter:perplexity/sonar +--- diff --git a/arch-user/config/aichat/roles/sonnet.md b/arch-user/config/aichat/roles/sonnet.md new file mode 100644 index 0000000..6e864a5 --- /dev/null +++ b/arch-user/config/aichat/roles/sonnet.md @@ -0,0 +1,3 @@ +--- +model: openrouter:anthropic/claude-sonnet-4 +--- diff --git a/arch-user/config/workspace.conf b/arch-user/config/workspace.conf index 9d5adfd..fe6699d 100644 --- a/arch-user/config/workspace.conf +++ b/arch-user/config/workspace.conf @@ -2,3 +2,4 @@ GIT_USER_EMAIL= GIT_USER_NAME= BACKUP_KEY_VOL_UUID= BACKUP_DATA_VOL_UUID= +AI_OPENROUTER_KEY=