跳轉至

TypeScript SDK

@anote-ai/sdk 是一個類型化的 TypeScript/JavaScript 客戶端,用於 Anote REST API。當您想要以程式方式調用 Anote 時 — 從腳本、後端服務或您自己的應用程式 — 而不是通過 CLI 或網頁應用程式時,請使用它。

與本地後端通訊

默認情況下,客戶端指向 https://api.anote.ai。如果您在本地運行此倉庫的後端(docker compose up,或 make dev-backend),請傳遞 baseUrl: "http://localhost:5050"(如果您不使用端口覆蓋,則為 :5000)— 請參見 開始使用 → 配置

您需要的條件

  • Node.js 18+
  • 一個 Anote 帳戶(通過 POST /auth/register 或網頁應用程式的註冊頁面註冊)
  • 一個 API 權杖(見下方第 2 步)

1. 安裝

bash npm install @anote-ai/sdk

2. 獲取 API 權杖

目前尚無 API 權杖的設置 UI,因此直接對後端進行鑄造。首先登錄以獲取 JWT,然後使用它來創建一個權杖:

```bash

登錄以獲取 JWT

curl -X POST http://localhost:5050/auth/login \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com", "password": "..."}'

→ { "access_token": "eyJ..." }

使用 JWT 鑄造 API 權杖

curl -X POST http://localhost:5050/api/user/api-keys \ -H "Authorization: Bearer eyJ..."

→ { "key": "ak-..." }

```

保存該 ak-... 值 — 它僅在創建時返回一次。

3. 初始化客戶端

```ts import { AnoteClient } from "@anote-ai/sdk";

const client = new AnoteClient({ apiKey: "ak-...", baseUrl: "http://localhost:5050", // 省略以使用 https://api.anote.ai }); ```

apiKey 是唯一的必需選項。當您指向生產 API 時,省略 baseUrl

4. 發送您的第一條消息

```ts const { result, usage } = await client.chat("解釋這個程式碼庫");

console.log(result); console.log(使用了 ${usage.inputTokens} 個輸入 / ${usage.outputTokens} 個輸出權杖); ```

chat() 是非串流調用 — 它等待完整的響應,這是您在腳本和自動化中所需的。將 cwdmodeltools 作為第二個參數傳遞,以範圍工作目錄、選擇模型或限制 AI 可以使用的工具:

ts await client.chat("列出此文件中的 TODO", { cwd: "/path/to/project", model: "claude-sonnet-4-6", tools: ["Read", "Grep"], });

常見任務

列出並檢查過去的工作階段

ts const sessions = await client.listSessions(); const { history } = await client.getSessionMessages(sessions[0].sessionId);

在工作階段歷史中搜索

ts const { results } = await client.search("身份驗證邏輯");

檢查您的使用情況和配額

ts const usage = await client.getUsage(); console.log(`${usage.remaining.requests} 本月剩餘請求`);

將工作階段作為只讀鏈接分享

ts const { shareUrl } = await client.shareSession(sessions[0].sessionId);

處理錯誤

每個非 2xx 響應都會拋出 AnoteError,該錯誤攜帶 HTTP 狀態和解析的響應主體:

```ts import { AnoteClient, AnoteError } from "@anote-ai/sdk";

try { await client.chat("..."); } catch (err) { if (err instanceof AnoteError) { console.error(err.status, err.message); // 例如 429, "每月配額超過" } } ```

檢查伺服器存活狀態(無需身份驗證)

ts const health = await client.health();

API 參考

new AnoteClient(options)

選項 類型 必需 描述
apiKey string 第 2 步中的 API 權杖,以 ak- 開頭
baseUrl string 伺服器 URL(默認:https://api.anote.ai

方法

方法 描述
chat(message, options?) 發送消息,獲取完整的 AI 響應
listSessions() 列出所有聊天工作階段
getSessionMessages(id) 獲取工作階段的消息歷史
deleteSession(id) 刪除一個工作階段
shareSession(id) 鑄造可分享的只讀鏈接
search(query, limit?) 在工作階段中進行全文搜索
getUsage() 當前月份的使用情況 + 配額
health() 伺服器存活檢查(無需身份驗證)

下一步