Hubungkan TeamoRouter ke DeepSeek Harness

DeepSeek Harness (perintah: dsh) mendukung penyedia model yang kompatibel dengan OpenAI. Setelah menyelesaikan panduan ini, Anda dapat menggunakan model seperti deepseek-flash, deepseek-flash-free, deepseek-v4-pro, deepseek-v4-flash, deepseek-v4-flash-free, gpt-6-astra, gpt-6-sol, gpt-6-luna, dan gpt-5.6-sol melalui TeamoRouter sambil tetap memakai antarmuka web, sesi, dan kemampuan agen Harness.

Model yang didukung

  • DeepSeek: deepseek-flash (DeepSeek V4.1 Flash), deepseek-flash-free (gratis), deepseek-v4-pro (rilis resmi 13 Agustus), deepseek-v4-flash (rilis resmi 31 Juli), deepseek-v4-flash-free
  • GPT: gpt-6-astra, gpt-6-sol, gpt-6-luna, gpt-5.6-sol, gpt-5.6-luna, gpt-5.6-terra, gpt-5.5

1. Prasyarat

Sebelum memulai, instal Node.js 24 dan siapkan API key TeamoRouter yang valid.

1.1 Instal Node.js 24

DeepSeek Harness memerlukan Node.js 24. npm sudah termasuk dalam Node.js. Unduh installer sesuai sistem operasi dan arsitektur CPU Anda:

Jika memakai mirror Tiongkok, pilih direktori v24.x.x dan unduh installer untuk sistem Anda. Setelah instalasi, buka kembali terminal dan periksa versinya:

bash
node --version
npm --version

Keluaran node --version seharusnya diawali v24..

API key TeamoRouter diawali sk-teamo-. Anda dapat membuatnya di dasbor TeamoRouter.

Buat API key TeamoRouter

2. Konfigurasi dan jalankan dalam satu langkah

Anda tidak perlu membuka atau mengedit file konfigurasi secara manual. Ganti sk-teamo-replace-with-your-api-key di blok kode dengan API key TeamoRouter Anda, lalu salin dan jalankan seluruh perintah di terminal. Perintah ini menginstal, mengonfigurasi, dan menjalankan DeepSeek Harness secara otomatis.

macOS / Linux

bash
bash <<'TEAMOROUTER_SETUP'
set -e

npm install -g @deepseek-ai/dsh
TEAMOROUTER_API_KEY="sk-teamo-replace-with-your-api-key"
export TEAMOROUTER_API_KEY

NODE_PATH="$(npm root -g)/@deepseek-ai/dsh/node_modules" node <<'NODE'
const fs = require('fs');
const os = require('os');
const path = require('path');
const yaml = require('js-yaml');

const home = process.env.DSH_HOME || path.join(os.homedir(), '.dsh');
const settingsPath = path.join(home, 'settings.yaml');
fs.mkdirSync(home, { recursive: true });

const current = fs.existsSync(settingsPath)
  ? (yaml.load(fs.readFileSync(settingsPath, 'utf8')) || {})
  : {};

if (fs.existsSync(settingsPath)) {
  fs.copyFileSync(settingsPath, settingsPath + '.bak.' + Date.now());
}

current['llm-pi-ai'] ??= {};
current['llm-pi-ai'].providers ??= {};
current['llm-pi-ai'].providers.teamorouter = {
  displayName: 'TeamoRouter',
  apiKeyEnv: 'TEAMOROUTER_API_KEY',
  api: 'openai-completions',
  baseURL: 'https://api.teamorouter.com/v1',
  models: [
    { id: 'deepseek-flash', name: 'DeepSeek V4.1 Flash' },
    { id: 'deepseek-flash-free', name: 'DeepSeek V4.1 Flash Free' },
    { id: 'deepseek-v4-pro', name: 'DeepSeek V4 Pro' },
    { id: 'deepseek-v4-flash', name: 'DeepSeek V4 Flash' },
    { id: 'deepseek-v4-flash-free', name: 'DeepSeek V4 Flash Free' },
    { id: 'gpt-6-astra', name: 'GPT 6 Astra' },
    { id: 'gpt-6-sol', name: 'GPT 6 Sol' },
    { id: 'gpt-6-luna', name: 'GPT 6 Luna' },
    { id: 'gpt-5.6-sol', name: 'GPT 5.6 Sol' },
    { id: 'gpt-5.6-luna', name: 'GPT 5.6 Luna' },
    { id: 'gpt-5.6-terra', name: 'GPT 5.6 Terra' },
    { id: 'gpt-5.5', name: 'GPT 5.5' },
  ],
};
current['agent-default-model'] = {
  provider: 'teamorouter',
  model: 'deepseek-flash-free',
};

fs.writeFileSync(
  settingsPath,
  yaml.dump(current, { lineWidth: -1, noRefs: true }),
  { mode: 0o600 },
);

const envPath = path.join(home, '.env');
const oldLines = fs.existsSync(envPath)
  ? fs.readFileSync(envPath, 'utf8').split(/\r?\n/)
  : [];
const lines = oldLines.filter(
  (line) => line && !line.startsWith('TEAMOROUTER_API_KEY='),
);
lines.push('TEAMOROUTER_API_KEY=' + process.env.TEAMOROUTER_API_KEY);
fs.writeFileSync(envPath, lines.join('\n') + '\n', { mode: 0o600 });

console.log('TeamoRouter configured. Default model: deepseek-flash-free');
NODE

dsh web
TEAMOROUTER_SETUP

Windows PowerShell

powershell
npm install -g @deepseek-ai/dsh

$env:TEAMOROUTER_API_KEY = 'sk-teamo-replace-with-your-api-key'
$env:NODE_PATH = "$(npm root -g)\@deepseek-ai\dsh\node_modules"

@'
const fs = require('fs');
const os = require('os');
const path = require('path');
const yaml = require('js-yaml');

const home = process.env.DSH_HOME || path.join(os.homedir(), '.dsh');
const settingsPath = path.join(home, 'settings.yaml');
fs.mkdirSync(home, { recursive: true });

const current = fs.existsSync(settingsPath)
  ? (yaml.load(fs.readFileSync(settingsPath, 'utf8')) || {})
  : {};

if (fs.existsSync(settingsPath)) {
  fs.copyFileSync(settingsPath, settingsPath + '.bak.' + Date.now());
}

current['llm-pi-ai'] ??= {};
current['llm-pi-ai'].providers ??= {};
current['llm-pi-ai'].providers.teamorouter = {
  displayName: 'TeamoRouter',
  apiKeyEnv: 'TEAMOROUTER_API_KEY',
  api: 'openai-completions',
  baseURL: 'https://api.teamorouter.com/v1',
  models: [
    { id: 'deepseek-flash', name: 'DeepSeek V4.1 Flash' },
    { id: 'deepseek-flash-free', name: 'DeepSeek V4.1 Flash Free' },
    { id: 'deepseek-v4-pro', name: 'DeepSeek V4 Pro' },
    { id: 'deepseek-v4-flash', name: 'DeepSeek V4 Flash' },
    { id: 'deepseek-v4-flash-free', name: 'DeepSeek V4 Flash Free' },
    { id: 'gpt-6-astra', name: 'GPT 6 Astra' },
    { id: 'gpt-6-sol', name: 'GPT 6 Sol' },
    { id: 'gpt-6-luna', name: 'GPT 6 Luna' },
    { id: 'gpt-5.6-sol', name: 'GPT 5.6 Sol' },
    { id: 'gpt-5.6-luna', name: 'GPT 5.6 Luna' },
    { id: 'gpt-5.6-terra', name: 'GPT 5.6 Terra' },
    { id: 'gpt-5.5', name: 'GPT 5.5' }
  ]
};

current['agent-default-model'] = {
  provider: 'teamorouter',
  model: 'deepseek-flash-free'
};

fs.writeFileSync(
  settingsPath,
  yaml.dump(current, { lineWidth: -1, noRefs: true }),
  { mode: 0o600 }
);

const envPath = path.join(home, '.env');
const oldLines = fs.existsSync(envPath)
  ? fs.readFileSync(envPath, 'utf8').split(/\r?\n/)
  : [];
const lines = oldLines.filter(
  (line) => line && !line.startsWith('TEAMOROUTER_API_KEY=')
);
lines.push('TEAMOROUTER_API_KEY=' + process.env.TEAMOROUTER_API_KEY);
fs.writeFileSync(envPath, lines.join('\n') + '\n', { mode: 0o600 });

console.log('TeamoRouter configured. Default model: deepseek-flash-free');
'@ | node

if ($LASTEXITCODE -eq 0) {
  dsh web
}

Perintah ini menginstal DeepSeek Harness, mencadangkan dan menggabungkan konfigurasi yang sudah ada, menyimpan key Anda, mengonfigurasi model TeamoRouter, lalu menjalankan Harness. Perintah ini tidak menghapus tema atau pengaturan lain yang sudah Anda miliki.

Setelah berjalan, terminal menampilkan URL lokal, biasanya http://127.0.0.1:3080. Buka di browser Anda dan buat sesi baru. Untuk menjalankan Harness lagi nanti, jalankan perintah ini dari direktori proyek Anda:

bash
dsh web

Untuk memakai Harness pada proyek tertentu, pindah ke direktori proyek yang sebenarnya sebelum menjalankan dsh web. Jangan menyalin /path/to/my-project apa adanya; itu hanya contoh pengganti.

3. Verifikasi koneksi

Kirim permintaan minimal dalam mode headless untuk memverifikasi konfigurasi, API key, dan model:

bash
export TEAMOROUTER_API_KEY="sk-teamo-xxxxxx"
dsh --profile headless "Reply with OK only"

Jika terminal mengembalikan OK, berarti DeepSeek Harness berhasil memanggil model melalui TeamoRouter. Jalankan dsh web untuk membuka antarmuka web.

4. Tambah dan ganti model

Untuk memilih dari beberapa model TeamoRouter di Harness, tambahkan ke daftar models yang sama. Contoh ini mencakup DeepSeek V4.1 Flash, versi berbayar dan gratis dari model DeepSeek V4, serta beberapa model GPT:

yaml
llm-pi-ai:
  providers:
    teamorouter:
      displayName: TeamoRouter
      apiKeyEnv: TEAMOROUTER_API_KEY
      api: openai-completions
      baseURL: https://api.teamorouter.com/v1
      models:
        - id: deepseek-flash
          name: DeepSeek V4.1 Flash
        - id: deepseek-flash-free
          name: DeepSeek V4.1 Flash Free
        - id: deepseek-v4-pro
          name: DeepSeek V4 Pro
        - id: deepseek-v4-flash
          name: DeepSeek V4 Flash
        - id: deepseek-v4-flash-free
          name: DeepSeek V4 Flash Free
        - id: gpt-6-astra
        - id: gpt-6-sol
        - id: gpt-6-luna
          name: GPT 6 Astra
        - id: gpt-5.6-sol
          name: GPT 5.6 Sol
        - id: gpt-5.6-luna
          name: GPT 5.6 Luna
        - id: gpt-5.5
          name: GPT 5.5
        - id: gpt-5.4
          name: GPT 5.4

agent-default-model:
  provider: teamorouter
  model: deepseek-flash-free

Ubah agent-default-model.model untuk menentukan model default sesi baru. Sesi yang sudah ada mungkin tetap memakai model aslinya. Setelah mengubah default, muat ulang halaman dan buat sesi baru, atau ganti model secara manual dari pemilih model.

Katalog model TeamoRouter diperbarui secara berkelanjutan. Untuk memastikan ID model terkini, jalankan:

bash
curl https://api.teamorouter.com/v1/models \
  -H "Authorization: Bearer sk-teamo-xxxxxx"

5. Pemecahan masalah

API mengembalikan 401 atau invalid_bearer_token. Pastikan API key lengkap, tidak mengandung spasi tambahan, belum dihapus, dan diawali sk-teamo-. Jika galat berlanjut, buat key baru di dasbor TeamoRouter lalu coba lagi.

Siap? Tiga langkah untuk memulaiMasuk ke konsol · isi saldo · buat API key
DiscordDapatkan bantuan komunitas secara instan