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 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

Akun baru mulai dengan saldo $0 — isi saldo sebelum permintaan pertama. Isi saldo mulai $5. Jika permintaan mengembalikan 402 dengan pesan "wallet balance is insufficient", artinya saldo Anda kosong — base URL dan key sudah benar. Isi saldo lalu coba lagi.

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.cn/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' },

  ],
};
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.cn/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' },

  ]
};

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

Di halaman yang dibuka dsh web, buat sesi baru lalu kirim "Reply with OK only". Jika balasannya OK, Harness sudah memanggil model melalui TeamoRouter. Jika muncul error API key tidak valid, pastikan key tersalin lengkap.

Anda juga bisa memverifikasi dari terminal. Konfigurasi dari langkah 2 hanya diimpor ke konfigurasi yang dipakai dsh web, jadi mode headless harus diberi konfigurasi itu. Tanpanya akan muncul MISSING_CREDENTIAL (memakai rute resmi DeepSeek, bukan TeamoRouter). Key sudah tersimpan di ~/.dsh/.env, jadi tidak perlu export:

bash
dsh headless --patch ~/.dsh/profiles/web/cordis.patch.yml "Reply with OK only"

Windows PowerShell:

powershell
dsh headless --patch "$HOME\.dsh\profiles\web\cordis.patch.yml" "Reply with OK only"

Jika terminal mengembalikan OK, koneksi berhasil.

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:

Setelah dsh web dijalankan pertama kali, ~/.dsh/settings.yaml diimpor lalu diganti namanya menjadi settings.yaml.imported. Untuk mengubah model nanti, buat lagi ~/.dsh/settings.yaml berisi seluruh konten di bawah (menggantikan daftar model TeamoRouter dan model default), lalu jalankan ulang dsh web.

yaml
llm-pi-ai:
  providers:
    teamorouter:
      displayName: TeamoRouter
      apiKeyEnv: TEAMOROUTER_API_KEY
      api: openai-completions
      baseURL: https://api.teamorouter.cn/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


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.cn/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.

MISSING_CREDENTIAL yang menyebut deepseek-official / DEEPSEEK_API_KEY. Proses ini tidak memakai konfigurasi atau key TeamoRouter. Untuk headless dan mode lain, tambahkan --patch ~/.dsh/profiles/web/cordis.patch.yml seperti di langkah 3. Jika dsh web juga menampilkannya, pastikan ~/.dsh/.env berisi TEAMOROUTER_API_KEY=sk-teamo-...; jika tidak ada, jalankan lagi perintah di langkah 2.

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