@thor123141245r/ai-translate 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,169 +1,181 @@
1
- # ai-translate: Reusable AI Translation CLI + i18n JSON Batch Translator
1
+ # ai-translate:可复用的 AI 翻译 CLI i18n JSON 批量翻译
2
2
 
3
- Source repo for the npm package `@thor123141245r/ai-translate`.
3
+ 本仓库是 npm `@thor123141245r/ai-translate` 的源码。
4
4
 
5
- Looking for Chinese docs? See `README.zh-CN.md`.
5
+ 它提供两类能力:
6
+ - 通用文件翻译:把任意文本文件分块后交给大模型翻译(适合 Markdown、技术文档、代码注释等)
7
+ - i18n JSON 翻译:以 `en.json` 为标准,批量生成/补齐其他语言 JSON(严格保留 key 与结构,只翻译字符串 value)
6
8
 
7
- This project provides two main capabilities:
8
- - General file translation: split a file into chunks and translate with an LLM (good for Markdown, technical docs, code comments, etc.)
9
- - i18n JSON translation: use `en.json` as the canonical source of truth and batch-generate/fill other locale JSON files (preserve keys and structure, translate string values only)
9
+ 核心设计原则是:结构在本地处理,模型只做翻译。避免把大体量结构化文件整段塞进模型上下文导致不稳定。
10
10
 
11
- The key design principle is: keep structure handling local, and let the model only translate text. This avoids unstable results caused by sending large structured files into the LLM context.
12
-
13
- ## Features
14
- - CLI:
15
- - `ai-translate` for general file translation
16
- - `ai-translate i18n` for i18n JSON translation based on a source JSON
17
- - Reusable modules: `AiTranslateTransform`, `TextSplitterStream`, `translateI18nDir`
18
- - Config file: `.ai-translate.json` (supports env var overrides)
19
- - Providers via LangChain SDK: ollama / openai / anthropic / mistral / deepseek
20
- - i18n-specific:
21
- - Translate values only; never modify keys/structure
22
- - Batch model calls to keep context stable
23
- - Placeholder protection (e.g. `{{name}}`, `{name}`, `%s`)
24
- - Local cache to reduce repeated translations
11
+ ## 功能概览
12
+ - CLI:
13
+ - `ai-translate` 通用文件翻译
14
+ - `ai-translate i18n` i18n JSON 批量翻译
15
+ - 可复用模块:`AiTranslateTransform`、`TextSplitterStream`、`translateI18nDir`
16
+ - 配置:`.ai-translate.json`(支持环境变量覆盖)
17
+ - 兼容多模型提供方:ollama / openai / openai-compatible / anthropic / mistral / deepseek(通过 Vercel AI SDK)
18
+ - i18n 专用能力:
19
+ - 只翻译 value,不改 key 与结构
20
+ - 批处理调用,避免上下文混乱
21
+ - 占位符保护(例如 `{{name}}`、`{name}`、`%s`)
22
+ - 本地缓存,减少重复翻译
25
23
 
26
24
  ## CLI
27
25
 
28
- ### General translation flags
29
- | Flag | Description | Notes |
26
+ ### 通用翻译参数
27
+ | 参数 | 作用 | 备注 |
30
28
  | --- | --- | --- |
31
- | `-h`, `--help` | Show help | |
32
- | `-v`, `--version` | Show version | |
33
- | `-c`, `--config DIR` | Config directory or config file path | reads `.ai-translate.json` |
34
- | `-f`, `--from LANG` | Source language | English name or BCP47 code |
35
- | `-t`, `--to LANG` | Target language | English name or BCP47 code |
36
- | `-i`, `--input FILE` | Input file path | |
37
- | `-o`, `--output FILE` | Output file path | |
38
- | `--format FORMAT` | Input format | cpp/go/java/js/php/proto/python/rst/ruby/rust/scala/swift/markdown/latex/html |
39
- | `set KEY VALUE` | Write config key | see config section |
40
- | `i18n` | i18n JSON translation | translate values only |
41
-
42
- ### Config keys
43
- | Key | Description | Default |
29
+ | `-h`, `--help` | 输出帮助信息 | |
30
+ | `-v`, `--version` | 输出版本号 | |
31
+ | `-c`, `--config DIR` | 指定配置目录或配置文件路径 | 读取 `.ai-translate.json` |
32
+ | `-f`, `--from LANG` | 源语言 | 可用英文名或 BCP47 代码 |
33
+ | `-t`, `--to LANG` | 目标语言 | 可用英文名或 BCP47 代码 |
34
+ | `-i`, `--input FILE` | 输入文件路径 | |
35
+ | `-o`, `--output FILE` | 输出文件路径 | |
36
+ | `--format FORMAT` | 指定输入格式 | cpp/go/java/js/php/proto/python/rst/ruby/rust/scala/swift/markdown/latex/html |
37
+ | `set KEY VALUE` | 写入配置项 | 见配置说明 |
38
+ | `i18n` | i18n JSON 批量翻译 | 只翻译 value |
39
+
40
+ ### 配置项
41
+ | 参数 | 作用 | 默认值 |
44
42
  | --- | --- | --- |
45
- | `provider` | Provider | `ollama` |
46
- | `model` | Model name | `qwen2.5:7b` |
47
- | `apiKey` | API key | empty |
48
- | `baseUrl` | Base URL | empty |
49
- | `temperature` | Temperature | `0.1` |
50
- | `maxRetries` | Max retries | `10` |
51
- | `chunkSize` | Split chunk size | `1000` |
43
+ | `provider` | 模型提供方 | `ollama` |
44
+ | `model` | 模型名称 | `qwen2.5:7b` |
45
+ | `apiKey` | 模型 API Key | |
46
+ | `baseUrl` | 模型 Base URL | |
47
+ | `temperature` | 模型温度 | `0.1` |
48
+ | `maxRetries` | 最大重试次数 | `10` |
49
+ | `chunkSize` | 文本分块大小 | `1000` |
52
50
 
53
- ## Quick Start
51
+ ## 快速开始
54
52
 
55
- ### Run via npx / pnpx
53
+ ### npx / pnpx 运行
56
54
  ```bash
57
55
  npx @thor123141245r/ai-translate --help
58
56
  pnpx @thor123141245r/ai-translate --help
59
57
  ```
60
58
 
61
- ### Choose a provider (required for real translations)
62
- This tool needs access to an LLM provider. If no provider is configured, translation calls will fail.
59
+ ### 选择模型提供方(要真正翻译必须配置)
60
+ 本工具需要能访问某个大模型提供方;如果未配置 provider 或未提供 key,翻译调用会失败。
63
61
 
64
- Pick ONE of the options below:
62
+ 下面任选一种方式:
65
63
 
66
- #### Option A: OpenAI (cloud)
67
- Set env vars:
64
+ #### 方式 AOpenAI(云)
65
+ 先配置环境变量:
68
66
  ```bash
69
- export OPENAI_API_KEY="YOUR_KEY"
67
+ export OPENAI_API_KEY="你的key"
70
68
  ```
71
69
 
72
- Then set provider (writes `.ai-translate.json`):
70
+ 再设置 provider(会写入 `.ai-translate.json`):
73
71
  ```bash
74
72
  npx @thor123141245r/ai-translate set provider openai
75
73
  ```
76
74
 
77
- #### Option B: Anthropic (cloud)
75
+ #### 方式 BAnthropic(云)
78
76
  ```bash
79
- export ANTHROPIC_API_KEY="YOUR_KEY"
77
+ export ANTHROPIC_API_KEY="你的key"
80
78
  npx @thor123141245r/ai-translate set provider anthropic
81
79
  ```
82
80
 
83
- #### Option C: Mistral (cloud)
81
+ #### 方式 CMistral(云)
84
82
  ```bash
85
- export MISTRAL_API_KEY="YOUR_KEY"
83
+ export MISTRAL_API_KEY="你的key"
86
84
  npx @thor123141245r/ai-translate set provider mistral
87
85
  ```
88
86
 
89
- #### Option D: DeepSeek (cloud)
87
+ #### 方式 DDeepSeek(云)
90
88
  ```bash
91
- export DEEPSEEK_API_KEY="YOUR_KEY"
89
+ export DEEPSEEK_API_KEY="你的key"
92
90
  npx @thor123141245r/ai-translate set provider deepseek
93
91
  ```
94
92
 
95
- #### Option E: Ollama (local)
96
- Start Ollama and make sure `OLLAMA_BASE_URL` works (default is `http://127.0.0.1:11434`).
93
+ #### 方式 EOllama(本地)
94
+ 启动 Ollama,并确保 `OLLAMA_BASE_URL` 可访问(默认 `http://127.0.0.1:11434`,内部会自动补齐 `/v1`)。
97
95
  ```bash
98
96
  export OLLAMA_BASE_URL="http://127.0.0.1:11434"
99
97
  npx @thor123141245r/ai-translate set provider ollama
100
98
  ```
101
99
 
102
- Notes:
103
- - `AI_TRANSLATE_API_KEY` overrides provider-specific API keys.
104
- - `AI_TRANSLATE_BASE_URL` overrides provider-specific base URLs.
100
+ #### 方式 F:OpenAI Compatible(市面大多数模型)
101
+ 只要模型提供方支持 OpenAI Compatible API,就可以直接接入:
102
+ ```bash
103
+ export AI_TRANSLATE_API_KEY="你的key"
104
+ export AI_TRANSLATE_BASE_URL="https://your-compatible-endpoint"
105
+ npx @thor123141245r/ai-translate set provider openai-compatible
106
+ npx @thor123141245r/ai-translate set model your-model-name
107
+ ```
108
+ 说明:
109
+ - `AI_TRANSLATE_BASE_URL` 若未包含 `/v1`,会自动补齐
110
+ - 也可改用 `OPENAI_API_KEY` / `OPENAI_BASE_URL`(同样会被识别)
111
+ - `openai-compatible` 必须提供 `baseUrl`
105
112
 
106
- ### Local development
113
+ 补充说明:
114
+ - `AI_TRANSLATE_API_KEY` 会覆盖各 provider 的 `*_API_KEY`
115
+ - `AI_TRANSLATE_BASE_URL` 会覆盖各 provider 的 `*_BASE_URL` 或 `OLLAMA_BASE_URL`
116
+ - `baseUrl` 若未包含 `/v1`,会自动补齐
117
+
118
+ ### 本地开发
107
119
  ```bash
108
120
  npm install
109
121
  npm run build
110
122
  ```
111
123
 
112
- ## Usage
124
+ ## 用法
113
125
 
114
- ### General file translation
126
+ ### 通用文件翻译
115
127
  ```bash
116
- # Translate a file
128
+ # 翻译文件
117
129
  node dist/bin/ai-translate.js -f Spanish -t English -i input.md -o output.md
118
130
 
119
- # Read from stdin using config in current folder
131
+ # stdin 读取,并使用当前目录的配置文件
120
132
  echo "translate" | node dist/bin/ai-translate.js -f en -t en -c .
121
133
  ```
122
134
 
123
- How it works:
124
- 1. Infer `--format` from the flag or file extension
125
- 2. Split input into chunks (default chunkSize=1000)
126
- 3. Translate each chunk using a single consistent prompt
127
- 4. Preserve original whitespace as much as possible
135
+ 工作方式:
136
+ 1. 通过 `--format` 或文件扩展名推断格式
137
+ 2. 将输入按 chunkSize 分块(默认 1000
138
+ 3. 对每个分块使用统一 Prompt 调用模型翻译
139
+ 4. 尽量保留原始空白与结构
128
140
 
129
- ### i18n JSON translation (use en.json as source of truth)
130
- Do NOT translate `en.json` as plain text. It will likely break JSON syntax or translate keys.
131
- Use `i18n` subcommand to translate leaf string values only.
141
+ ### i18n JSON 翻译(以 en.json 为标准)
142
+ 不要把 `en.json` 当纯文本翻译,这很容易破坏 JSON 语法或把 key 翻译掉。
143
+ 请使用 `i18n` 子命令:只翻译叶子字符串 value。
132
144
 
133
145
  ```bash
134
- # Run via npx
146
+ # npx 直接运行
135
147
  npx @thor123141245r/ai-translate i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru
136
148
 
137
- # Default mode=fill: keep existing translations, only fill missing values
149
+ # 默认 mode=fill:保留已有翻译,只补齐缺失项
138
150
  node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en
139
151
 
140
- # Specify targets (also creates target files when missing)
152
+ # 指定目标语言(即使目标文件不存在也会生成)
141
153
  node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru,de
142
154
 
143
- # Overwrite all values (use with care)
155
+ # 覆盖重翻(慎用)
144
156
  node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru --mode overwrite
145
157
 
146
- # Dry run (no file writes)
158
+ # 仅预览统计(不写文件)
147
159
  node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --dry
148
160
  ```
149
161
 
150
- How it works:
151
- - Reads source JSON from `--base` (default `{source}.json`, e.g. `en.json`)
152
- - Target files are `{lang}.json` (e.g. `ru.json`)
153
- - Extracts all leaf string values from the source JSON
154
- - Calls the model in batches (model never sees the whole JSON)
155
- - Writes translated values back by key path (keys/structure are preserved)
156
- - Writes a cache file `.ai-translate.cache.json` under the base directory by default
162
+ 工作方式:
163
+ - `--base` 目录读取源文件(默认 `{source}.json`,例如 `en.json`)
164
+ - 目标文件默认 `{lang}.json`(例如 `ru.json`)
165
+ - 本地解析 JSON,提取所有“叶子字符串 value”作为待翻译单元
166
+ - 通过批处理调用模型(模型不会拿到整份 JSON
167
+ - 按原 key 路径写回翻译结果,严格不改 key
168
+ - 默认在目录下写入缓存 `.ai-translate.cache.json`,减少重复翻译
157
169
 
158
- Common i18n flags:
159
- - `--mode fill` (default): fill missing values only
160
- - `--mode overwrite`: translate all string values
161
- - `--mode prune`: align to source and remove extra keys
162
- - `--batchMaxItems` / `--batchMaxChars`: control batch size per model call
163
- - `--cache`: cache file name under `--base`
170
+ i18n 常用参数:
171
+ - `--mode fill`:只补齐缺失项(推荐默认)
172
+ - `--mode overwrite`:重翻全部字符串 value
173
+ - `--mode prune`:对齐结构并清理多余 key
174
+ - `--batchMaxItems` / `--batchMaxChars`:控制批处理大小
175
+ - `--cache`:自定义缓存文件名(相对于 `--base`)
164
176
 
165
- ## Configuration
166
- Config file: `.ai-translate.json`. You can write it via CLI:
177
+ ## 配置说明
178
+ 配置文件名为 `.ai-translate.json`,可通过命令行写入:
167
179
 
168
180
  ```bash
169
181
  node dist/bin/ai-translate.js set provider ollama
@@ -172,39 +184,29 @@ node dist/bin/ai-translate.js set model qwen2.5:7b
172
184
  node dist/bin/ai-translate.js set chunkSize 1000
173
185
  ```
174
186
 
175
- ## Environment Variable Priority
176
- Priority: env vars > config file > defaults.
187
+ ## 环境变量优先级
188
+ 优先级:环境变量 > 配置文件 > 默认值。
177
189
 
178
- Common env vars:
190
+ 通用环境变量:
179
191
  - `AI_TRANSLATE_API_KEY`
180
192
  - `AI_TRANSLATE_BASE_URL`
181
193
 
182
- Provider-specific env vars:
194
+ 提供方环境变量:
183
195
  - `OPENAI_API_KEY` / `OPENAI_BASE_URL`
184
196
  - `ANTHROPIC_API_KEY` / `ANTHROPIC_BASE_URL`
185
197
  - `MISTRAL_API_KEY` / `MISTRAL_BASE_URL`
186
198
  - `DEEPSEEK_API_KEY` / `DEEPSEEK_BASE_URL`
187
199
  - `OLLAMA_BASE_URL`
200
+ - `OPENAI_API_KEY` / `OPENAI_BASE_URL` 也可用于 `openai-compatible`
201
+
202
+ 补充说明:
203
+ - `baseUrl` 若未包含 `/v1`,会自动补齐
188
204
 
189
- ## Notes
190
- - For i18n, always use `ai-translate i18n` instead of translating JSON as plain text.
191
- - Avoid verbose logs and sensitive data in production environments.
205
+ ## 注意事项
206
+ - i18n 场景请优先使用 `ai-translate i18n`,不要直接把 `en.json` 当纯文本翻译
207
+ - 生产环境注意避免输出冗长日志与敏感信息
192
208
 
193
- ## Minimal Validation
209
+ ## 最小自测
194
210
  ```bash
195
211
  npm run validate
196
212
  ```
197
-
198
- # About the Author
199
-
200
- I build **AI SaaS for global markets**—from **idea validation & vibe coding** to **engineering, infra, SEO/backlinks, and growth experiments**.
201
-
202
- Everything here comes from **real projects, real traffic, and real revenue attempts**.
203
-
204
- - **Knowledge Base**: [Thor’s AI Going-Global Content Planning](https://my.feishu.cn/wiki/DUzewBOq2iy1rPkSYJecMRXYnFh)
205
- - **Blog**: [Thor-AI Blog](https://www.notion.so/Thor-AI-2eaf0388ab4680d0a98bedc8d290e1be?pvs=21)
206
- - **Open Source (High Star)**: Smart Campus System — [GitHub](https://github.com/214140846/TOGO_School_Miniprograme) | [Gitee](https://gitee.com/zengyunengineer/TOGO_School_Miniprograme) | [Skillhub-MCP](https://github.com/214140846/skillhub-mcp)
207
- - **Social**: [Jike](https://web.okjike.com/u/159D450D-2193-4739-8825-AA8EBEC2E9B4)
208
- - **Products**: [sora2.cloud](https://sora2.cloud/) | [ricebowl.ai](https://ricebowl.ai/)
209
- - **Notes**: [AI Video & Image Collection](https://www.notion.so/Ricebowl-AI-2eef0388ab468155b14cd0ac0dd14fa9?pvs=21)
210
- - **PyPI**: [skillhub-mcp](https://pypi.org/project/skillhub-mcp/)
package/README.zh-CN.md CHANGED
@@ -14,7 +14,7 @@
14
14
  - `ai-translate i18n` i18n JSON 批量翻译
15
15
  - 可复用模块:`AiTranslateTransform`、`TextSplitterStream`、`translateI18nDir`
16
16
  - 配置:`.ai-translate.json`(支持环境变量覆盖)
17
- - 兼容多模型提供方:ollama / openai / anthropic / mistral / deepseek(通过 LangChain 官方 SDK)
17
+ - 兼容多模型提供方:ollama / openai / openai-compatible / anthropic / mistral / deepseek(通过 Vercel AI SDK)
18
18
  - i18n 专用能力:
19
19
  - 只翻译 value,不改 key 与结构
20
20
  - 批处理调用,避免上下文混乱
@@ -91,15 +91,29 @@ npx @thor123141245r/ai-translate set provider deepseek
91
91
  ```
92
92
 
93
93
  #### 方式 E:Ollama(本地)
94
- 启动 Ollama,并确保 `OLLAMA_BASE_URL` 可访问(默认 `http://127.0.0.1:11434`)。
94
+ 启动 Ollama,并确保 `OLLAMA_BASE_URL` 可访问(默认 `http://127.0.0.1:11434`,内部会自动补齐 `/v1`)。
95
95
  ```bash
96
96
  export OLLAMA_BASE_URL="http://127.0.0.1:11434"
97
97
  npx @thor123141245r/ai-translate set provider ollama
98
98
  ```
99
99
 
100
+ #### 方式 F:OpenAI Compatible(市面大多数模型)
101
+ 只要模型提供方支持 OpenAI Compatible API,就可以直接接入:
102
+ ```bash
103
+ export AI_TRANSLATE_API_KEY="你的key"
104
+ export AI_TRANSLATE_BASE_URL="https://your-compatible-endpoint"
105
+ npx @thor123141245r/ai-translate set provider openai-compatible
106
+ npx @thor123141245r/ai-translate set model your-model-name
107
+ ```
108
+ 说明:
109
+ - `AI_TRANSLATE_BASE_URL` 若未包含 `/v1`,会自动补齐
110
+ - 也可改用 `OPENAI_API_KEY` / `OPENAI_BASE_URL`(同样会被识别)
111
+ - `openai-compatible` 必须提供 `baseUrl`
112
+
100
113
  补充说明:
101
114
  - `AI_TRANSLATE_API_KEY` 会覆盖各 provider 的 `*_API_KEY`
102
115
  - `AI_TRANSLATE_BASE_URL` 会覆盖各 provider 的 `*_BASE_URL` 或 `OLLAMA_BASE_URL`
116
+ - `baseUrl` 若未包含 `/v1`,会自动补齐
103
117
 
104
118
  ### 本地开发
105
119
  ```bash
@@ -183,6 +197,10 @@ node dist/bin/ai-translate.js set chunkSize 1000
183
197
  - `MISTRAL_API_KEY` / `MISTRAL_BASE_URL`
184
198
  - `DEEPSEEK_API_KEY` / `DEEPSEEK_BASE_URL`
185
199
  - `OLLAMA_BASE_URL`
200
+ - `OPENAI_API_KEY` / `OPENAI_BASE_URL` 也可用于 `openai-compatible`
201
+
202
+ 补充说明:
203
+ - `baseUrl` 若未包含 `/v1`,会自动补齐
186
204
 
187
205
  ## 注意事项
188
206
  - i18n 场景请优先使用 `ai-translate i18n`,不要直接把 `en.json` 当纯文本翻译
@@ -0,0 +1,25 @@
1
+ import { type ModelMessage, type LanguageModel } from 'ai';
2
+ export type Usage = {
3
+ inputTokens: number;
4
+ outputTokens: number;
5
+ };
6
+ export type GenerateTextArgs = {
7
+ messages: ModelMessage[];
8
+ temperature?: number;
9
+ maxRetries?: number;
10
+ };
11
+ export type GenerateTextResult = {
12
+ text: string;
13
+ usage?: Usage;
14
+ };
15
+ export type ModelClient = {
16
+ generateText: (args: GenerateTextArgs) => Promise<GenerateTextResult>;
17
+ };
18
+ export declare const createModelClient: (opts: {
19
+ model: LanguageModel;
20
+ defaults?: {
21
+ temperature?: number;
22
+ maxRetries?: number;
23
+ };
24
+ }) => ModelClient;
25
+ //# sourceMappingURL=model-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-client.d.ts","sourceRoot":"","sources":["../../src/ai/model-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,IAAI,CAAA;AAExE,MAAM,MAAM,KAAK,GAAG;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM;IACtC,KAAK,EAAE,aAAa,CAAA;IACpB,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzD,KAAG,WAmBH,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { generateText } from 'ai';
2
+ export const createModelClient = (opts) => {
3
+ const { model, defaults } = opts;
4
+ return {
5
+ async generateText(args) {
6
+ const result = await generateText({
7
+ model,
8
+ messages: args.messages,
9
+ temperature: args.temperature ?? defaults?.temperature,
10
+ maxRetries: args.maxRetries ?? defaults?.maxRetries
11
+ });
12
+ const usage = result.usage
13
+ ? {
14
+ inputTokens: result.usage.inputTokens ?? 0,
15
+ outputTokens: result.usage.outputTokens ?? 0
16
+ }
17
+ : undefined;
18
+ return { text: result.text, usage };
19
+ }
20
+ };
21
+ };
22
+ //# sourceMappingURL=model-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-client.js","sourceRoot":"","sources":["../../src/ai/model-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyC,MAAM,IAAI,CAAA;AAsBxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAGjC,EAAe,EAAE;IAChB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAChC,OAAO;QACL,KAAK,CAAC,YAAY,CAAC,IAAI;YACrB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,KAAK;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW;gBACtD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU;aACpD,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;gBACxB,CAAC,CAAC;oBACE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;oBAC1C,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;iBAC7C;gBACH,CAAC,CAAC,SAAS,CAAA;YACb,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA2LA,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE;;;CAoBxC,CAAA;AAWD,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,OAAO,SAEjD,CAAA;AAuFD,eAAO,MAAM,GAAG,GAAU,OAAO,MAAM,EAAE,kBA8ExC,CAAA"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA2LA,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE;;;CAoBxC,CAAA;AAWD,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,OAAO,SAEjD,CAAA;AAyFD,eAAO,MAAM,GAAG,GAAU,OAAO,MAAM,EAAE,kBA2ExC,CAAA"}
package/dist/cli.js CHANGED
@@ -55,7 +55,7 @@ Flags:
55
55
  -c, --config DIR Use config file .ai-translate.json in DIR
56
56
 
57
57
  Available KEYs:
58
- provider set provider (ollama, mistral, anthropic, openai, deepseek);
58
+ provider set provider (ollama, mistral, anthropic, openai, deepseek, openai-compatible);
59
59
  default="ollama"
60
60
  model set model from provider; default="qwen2.5:7b"
61
61
  apiKey set api key
@@ -238,14 +238,16 @@ const PROVIDER_API_KEY_ENV = {
238
238
  openai: 'OPENAI_API_KEY',
239
239
  anthropic: 'ANTHROPIC_API_KEY',
240
240
  mistral: 'MISTRAL_API_KEY',
241
- deepseek: 'DEEPSEEK_API_KEY'
241
+ deepseek: 'DEEPSEEK_API_KEY',
242
+ 'openai-compatible': 'OPENAI_API_KEY'
242
243
  };
243
244
  const PROVIDER_BASE_URL_ENV = {
244
245
  openai: 'OPENAI_BASE_URL',
245
246
  anthropic: 'ANTHROPIC_BASE_URL',
246
247
  mistral: 'MISTRAL_BASE_URL',
247
248
  deepseek: 'DEEPSEEK_BASE_URL',
248
- ollama: 'OLLAMA_BASE_URL'
249
+ ollama: 'OLLAMA_BASE_URL',
250
+ 'openai-compatible': 'OPENAI_BASE_URL'
249
251
  };
250
252
  const readEnv = (key) => {
251
253
  if (!key)
@@ -311,9 +313,7 @@ export const cli = async (args) => {
311
313
  const writer = opts.output ? fs.createWriteStream(String(opts.output)) : process.stdout;
312
314
  const runtimeConfig = resolveRuntimeConfig(appConf.config);
313
315
  const model = modelFactory(runtimeConfig);
314
- const lcNamespace = model.lc_namespace || {};
315
- const lcKwargs = model.lc_kwargs || {};
316
- const { apiKey: _apiKey, ...modelParams } = { ...lcNamespace, ...lcKwargs };
316
+ const { apiKey: _apiKey, ...modelParams } = runtimeConfig;
317
317
  log.debug(modelParams);
318
318
  const format = opts.format ||
319
319
  getFormatByExtension(path.extname(String(opts.input || '_.md')));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
1
+ import type { ModelClient } from '../ai/model-client.js';
2
2
  export declare const runI18nCommand: (opts: {
3
3
  console: Pick<typeof console, "log" | "error">;
4
- model: BaseChatModel;
4
+ model: ModelClient;
5
5
  argvOpts: Record<string, unknown>;
6
6
  }) => Promise<void>;
7
7
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/i18n/command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AA4BhF,eAAO,MAAM,cAAc,GAAU,MAAM;IACzC,OAAO,EAAE,IAAI,CAAC,OAAO,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAA;IAC9C,KAAK,EAAE,aAAa,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,kBA2DA,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/i18n/command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AA4BxD,eAAO,MAAM,cAAc,GAAU,MAAM;IACzC,OAAO,EAAE,IAAI,CAAC,OAAO,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAA;IAC9C,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,kBA2DA,CAAA"}
@@ -1,13 +1,13 @@
1
- import type { ChatPromptValueInterface } from '@langchain/core/prompt_values';
1
+ import type { ModelMessage } from 'ai';
2
2
  export declare const i18nBatchPromptInvoke: (opts: {
3
3
  sourceLanguage: string;
4
4
  targetLanguage: string;
5
5
  itemsJson: string;
6
- }) => Promise<ChatPromptValueInterface>;
6
+ }) => ModelMessage[];
7
7
  export declare const i18nRepairPromptInvoke: (opts: {
8
8
  sourceLanguage: string;
9
9
  targetLanguage: string;
10
10
  expectedIds: string[];
11
11
  badOutput: string;
12
- }) => Promise<ChatPromptValueInterface>;
12
+ }) => ModelMessage[];
13
13
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/i18n/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAkB7E,eAAO,MAAM,qBAAqB,GAAI,MAAM;IAC1C,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,OAAO,CAAC,wBAAwB,CAKhC,CAAA;AAEJ,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,OAAO,CAAC,wBAAwB,CAmBnC,CAAA"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/i18n/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAmBtC,eAAO,MAAM,qBAAqB,GAAI,MAAM;IAC1C,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,YAAY,EASf,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,KAAG,YAAY,EAmBf,CAAA"}
@@ -1,4 +1,3 @@
1
- import { ChatPromptTemplate } from '@langchain/core/prompts';
2
1
  const systemPrompt = 'You are a professional localization translator.\n' +
3
2
  'You will receive a JSON array. Each element has fields: "id" and "text".\n' +
4
3
  'Your task is to translate ONLY the value of "text" from "{sourceLanguage}" to "{targetLanguage}".\n' +
@@ -8,30 +7,34 @@ const systemPrompt = 'You are a professional localization translator.\n' +
8
7
  '- Keep placeholder tokens like __AI_TRANSLATE_PH_0__ unchanged.\n' +
9
8
  '- Do not add, remove, or reorder array items.\n' +
10
9
  '- Keep punctuation and formatting as close as possible.\n';
11
- const promptTemplate = ChatPromptTemplate.fromMessages([
12
- ['system', systemPrompt],
13
- ['user', '{itemsJson}']
14
- ]);
15
- export const i18nBatchPromptInvoke = (opts) => promptTemplate.invoke({
16
- sourceLanguage: opts.sourceLanguage,
17
- targetLanguage: opts.targetLanguage,
18
- itemsJson: opts.itemsJson
19
- });
10
+ const fillTemplate = (template, vars) => Object.keys(vars).reduce((acc, key) => acc.replaceAll(`{${key}}`, vars[key]), template);
11
+ export const i18nBatchPromptInvoke = (opts) => {
12
+ const system = fillTemplate(systemPrompt, {
13
+ sourceLanguage: opts.sourceLanguage,
14
+ targetLanguage: opts.targetLanguage
15
+ });
16
+ return [
17
+ { role: 'system', content: system },
18
+ { role: 'user', content: opts.itemsJson }
19
+ ];
20
+ };
20
21
  export const i18nRepairPromptInvoke = (opts) => {
21
22
  const repairSystem = 'You fix model outputs into valid JSON.\n' +
22
23
  'Return ONLY valid JSON array of objects with fields: "id" and "text".\n' +
23
24
  'Preserve the provided IDs exactly, and include all IDs, no extras.\n' +
24
25
  'Keep placeholder tokens like __AI_TRANSLATE_PH_0__ unchanged.\n';
25
- const repairTemplate = ChatPromptTemplate.fromMessages([
26
- ['system', repairSystem],
27
- [
28
- 'user',
29
- 'Expected ids:\n{ids}\n\nBad output:\n{bad}\n\nReturn fixed JSON array only.'
30
- ]
31
- ]);
32
- return repairTemplate.invoke({
33
- ids: JSON.stringify(opts.expectedIds),
34
- bad: opts.badOutput
35
- });
26
+ const user = [
27
+ 'Expected ids:',
28
+ JSON.stringify(opts.expectedIds),
29
+ '',
30
+ 'Bad output:',
31
+ opts.badOutput,
32
+ '',
33
+ 'Return fixed JSON array only.'
34
+ ].join('\n');
35
+ return [
36
+ { role: 'system', content: repairSystem },
37
+ { role: 'user', content: user }
38
+ ];
36
39
  };
37
40
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/i18n/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,MAAM,YAAY,GAChB,mDAAmD;IACnD,4EAA4E;IAC5E,qGAAqG;IACrG,UAAU;IACV,4BAA4B;IAC5B,4EAA4E;IAC5E,mEAAmE;IACnE,iDAAiD;IACjD,2DAA2D,CAAA;AAE7D,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC;IACrD,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,MAAM,EAAE,aAAa,CAAC;CACxB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAIrC,EAAqC,EAAE,CACtC,cAAc,CAAC,MAAM,CAAC;IACpB,cAAc,EAAE,IAAI,CAAC,cAAc;IACnC,cAAc,EAAE,IAAI,CAAC,cAAc;IACnC,SAAS,EAAE,IAAI,CAAC,SAAS;CAC1B,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAKtC,EAAqC,EAAE;IACtC,MAAM,YAAY,GAChB,0CAA0C;QAC1C,yEAAyE;QACzE,sEAAsE;QACtE,iEAAiE,CAAA;IAEnE,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC;QACrD,CAAC,QAAQ,EAAE,YAAY,CAAC;QACxB;YACE,MAAM;YACN,6EAA6E;SAC9E;KACF,CAAC,CAAA;IAEF,OAAO,cAAc,CAAC,MAAM,CAAC;QAC3B,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC,GAAG,EAAE,IAAI,CAAC,SAAS;KACpB,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/i18n/prompt.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAChB,mDAAmD;IACnD,4EAA4E;IAC5E,qGAAqG;IACrG,UAAU;IACV,4BAA4B;IAC5B,4EAA4E;IAC5E,mEAAmE;IACnE,iDAAiD;IACjD,2DAA2D,CAAA;AAE7D,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,IAA4B,EAAE,EAAE,CACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EACnD,QAAQ,CACT,CAAA;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAIrC,EAAkB,EAAE;IACnB,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE;QACxC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAA;IACF,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;QACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;KAC1C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAKtC,EAAkB,EAAE;IACnB,MAAM,YAAY,GAChB,0CAA0C;QAC1C,yEAAyE;QACzE,sEAAsE;QACtE,iEAAiE,CAAA;IACnE,MAAM,IAAI,GAAG;QACX,eAAe;QACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QAChC,EAAE;QACF,aAAa;QACb,IAAI,CAAC,SAAS;QACd,EAAE;QACF,+BAA+B;KAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;KAChC,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
1
+ import type { ModelClient } from '../ai/model-client.js';
2
2
  import type { AlignMode } from './align.js';
3
3
  export type I18nTranslateOptions = {
4
4
  baseDir: string;
@@ -23,7 +23,7 @@ export type I18nTargetStats = {
23
23
  usedCache: number;
24
24
  };
25
25
  export declare const translateI18nDir: (opts: {
26
- model: BaseChatModel;
26
+ model: ModelClient;
27
27
  options: I18nTranslateOptions;
28
28
  }) => Promise<I18nTargetStats[]>;
29
29
  //# sourceMappingURL=translate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/i18n/translate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAEhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAY3C,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAqFD,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,MAAM;IAC3C,KAAK,EAAE,aAAa,CAAA;IACpB,OAAO,EAAE,oBAAoB,CAAA;CAC9B,KAAG,OAAO,CAAC,eAAe,EAAE,CA6J5B,CAAA"}
1
+ {"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/i18n/translate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAY3C,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAqFD,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,MAAM;IAC3C,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,oBAAoB,CAAA;CAC9B,KAAG,OAAO,CAAC,eAAe,EAAE,CA6J5B,CAAA"}
@@ -49,9 +49,9 @@ const translateBatch = async (opts) => {
49
49
  targetLanguage: opts.targetLanguage,
50
50
  itemsJson
51
51
  });
52
- const result = await opts.model.invoke(messages);
52
+ const result = await opts.model.generateText({ messages });
53
53
  try {
54
- return parseJsonArray(String(result.content ?? ''));
54
+ return parseJsonArray(String(result.text ?? ''));
55
55
  }
56
56
  catch (err) {
57
57
  // One repair attempt: ask the model to output valid JSON only.
@@ -60,10 +60,10 @@ const translateBatch = async (opts) => {
60
60
  sourceLanguage: opts.sourceLanguage,
61
61
  targetLanguage: opts.targetLanguage,
62
62
  expectedIds,
63
- badOutput: String(result.content ?? '')
63
+ badOutput: String(result.text ?? '')
64
64
  });
65
- const repaired = await opts.model.invoke(repair);
66
- return parseJsonArray(String(repaired.content ?? ''));
65
+ const repaired = await opts.model.generateText({ messages: repair });
66
+ return parseJsonArray(String(repaired.text ?? ''));
67
67
  }
68
68
  };
69
69
  export const translateI18nDir = async (opts) => {
@@ -1 +1 @@
1
- {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/i18n/translate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/i18n/translate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,5 +3,6 @@ export { promptInvoke, languages } from './prompt.js';
3
3
  export { TextSplitterStream, recursiveChunkTextSplitter, getFormatByExtension } from './split.js';
4
4
  export { translateI18nDir } from './i18n/translate.js';
5
5
  export type { Metadata, ModelFactoryOptions } from './model.js';
6
+ export type { ModelClient, Usage } from './ai/model-client.js';
6
7
  export type { TextSplitterParams, Separator } from './split.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC/D,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC/D,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC9D,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
package/dist/model.d.ts CHANGED
@@ -1,20 +1,25 @@
1
- import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
2
1
  import { AsyncTransform } from './asyncTransform.js';
2
+ import { type ModelClient } from './ai/model-client.js';
3
3
  export type Metadata = {
4
4
  inputTokens: number;
5
5
  outputTokens: number;
6
6
  };
7
7
  export type ModelFactoryOptions = {
8
- provider?: 'ollama' | 'mistral' | 'anthropic' | 'openai' | 'deepseek';
8
+ provider?: 'ollama' | 'mistral' | 'anthropic' | 'openai' | 'deepseek' | 'openai-compatible';
9
+ model?: string;
10
+ apiKey?: string;
11
+ baseUrl?: string;
12
+ temperature?: number;
13
+ maxRetries?: number;
9
14
  [key: string]: unknown;
10
15
  };
11
- export declare const modelFactory: (modelOpts?: ModelFactoryOptions) => BaseChatModel;
16
+ export declare const modelFactory: (modelOpts?: ModelFactoryOptions) => ModelClient;
12
17
  export declare class AiTranslateTransform extends AsyncTransform {
13
18
  private readonly _model;
14
19
  private readonly _promptOpts;
15
20
  private _metadata;
16
21
  constructor(options: {
17
- model: BaseChatModel;
22
+ model: ModelClient;
18
23
  format?: string;
19
24
  sourceLanguage: string;
20
25
  targetLanguage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAapD,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,YAAY,mBAAmB,KAAG,aAuD9D,CAAA;AAED,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI3B;IACD,OAAO,CAAC,SAAS,CAAgD;gBAErD,OAAO,EAAE;QACnB,KAAK,EAAE,aAAa,CAAA;QACpB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,EAAE,MAAM,CAAA;QACtB,cAAc,EAAE,MAAM,CAAA;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB;IAOD,WAAW;qBAxFE,MAAM;sBACL,MAAM;;cA2FJ,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,cAAc,GAAG,QAAQ;CAwBtC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIpD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAU1E,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAAA;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAUD,eAAO,MAAM,YAAY,GAAI,YAAY,mBAAmB,KAAG,WA0F9D,CAAA;AAED,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI3B;IACD,OAAO,CAAC,SAAS,CAAgD;gBAErD,OAAO,EAAE;QACnB,KAAK,EAAE,WAAW,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,EAAE,MAAM,CAAA;QACtB,cAAc,EAAE,MAAM,CAAA;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB;IAOD,WAAW;qBAxIE,MAAM;sBACL,MAAM;;cA2IJ,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,cAAc,GAAG,QAAQ;CAsBtC"}
package/dist/model.js CHANGED
@@ -1,69 +1,111 @@
1
- import { ChatOllama } from '@langchain/ollama';
2
- import { ChatMistralAI } from '@langchain/mistralai';
3
- import { ChatAnthropic } from '@langchain/anthropic';
4
- import { ChatOpenAI } from '@langchain/openai';
5
- import { ChatDeepSeek } from '@langchain/deepseek';
1
+ import { createOpenAI } from '@ai-sdk/openai';
2
+ import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
3
+ import { createAnthropic } from '@ai-sdk/anthropic';
4
+ import { createMistral } from '@ai-sdk/mistral';
6
5
  import { AsyncTransform } from './asyncTransform.js';
7
6
  import { promptInvoke, replaceMarkerSymbol } from './prompt.js';
8
7
  import { logger } from './logger.js';
9
8
  import { isWhiteSpace, preserveWhiteSpace } from './utils.js';
9
+ import { createModelClient } from './ai/model-client.js';
10
10
  const log = logger('model');
11
11
  const DEFAULT = {
12
12
  temperature: 0.1,
13
13
  maxRetries: 10,
14
14
  maxConcurrency: 1
15
15
  };
16
+ const normalizeBaseUrl = (baseUrl) => {
17
+ if (!baseUrl)
18
+ return;
19
+ const trimmed = baseUrl.trim();
20
+ if (!trimmed)
21
+ return;
22
+ if (/\/v1\/?$/.test(trimmed))
23
+ return trimmed;
24
+ return `${trimmed.replace(/\/+$/, '')}/v1`;
25
+ };
16
26
  export const modelFactory = (modelOpts) => {
17
27
  const { provider = 'ollama', ...other } = modelOpts || {};
18
28
  const apiKeyValue = typeof other.apiKey === 'string' ? other.apiKey.trim() : '';
19
29
  const baseUrlValue = typeof other.baseUrl === 'string' ? other.baseUrl.trim() : '';
20
30
  const apiKey = apiKeyValue ? apiKeyValue : undefined;
21
- const baseUrl = baseUrlValue ? baseUrlValue : undefined;
22
- const filtered = { ...other };
23
- if ('apiKey' in filtered) {
24
- delete filtered.apiKey;
25
- }
26
- if ('baseUrl' in filtered) {
27
- delete filtered.baseUrl;
28
- }
31
+ const baseUrl = baseUrlValue ? normalizeBaseUrl(baseUrlValue) : undefined;
32
+ const modelName = typeof other.model === 'string' && other.model.trim().length > 0
33
+ ? other.model.trim()
34
+ : undefined;
35
+ const temperature = typeof other.temperature === 'number' ? other.temperature : DEFAULT.temperature;
36
+ const maxRetries = typeof other.maxRetries === 'number' ? other.maxRetries : DEFAULT.maxRetries;
37
+ const requireBaseUrl = (name) => {
38
+ if (baseUrl)
39
+ return baseUrl;
40
+ if (name === 'ollama') {
41
+ return normalizeBaseUrl('http://127.0.0.1:11434');
42
+ }
43
+ if (name === 'deepseek') {
44
+ return normalizeBaseUrl('https://api.deepseek.com');
45
+ }
46
+ throw new Error(`baseUrl is required for provider=${name}`);
47
+ };
29
48
  switch (provider) {
30
49
  case 'ollama':
31
- return new ChatOllama({
32
- ...DEFAULT,
33
- model: 'qwen2.5:7b',
34
- ...(baseUrl ? { baseUrl } : {}),
35
- ...filtered
36
- });
50
+ {
51
+ const resolvedBaseUrl = requireBaseUrl('ollama');
52
+ return createModelClient({
53
+ model: createOpenAICompatible({
54
+ name: 'ollama',
55
+ baseURL: resolvedBaseUrl,
56
+ ...(apiKey ? { apiKey } : {})
57
+ })(modelName || 'qwen2.5:7b'),
58
+ defaults: { temperature, maxRetries }
59
+ });
60
+ }
37
61
  case 'mistral':
38
- return new ChatMistralAI({
39
- ...DEFAULT,
40
- model: 'ministral-8b',
41
- ...(apiKey ? { apiKey } : {}),
42
- ...filtered
62
+ return createModelClient({
63
+ model: createMistral({
64
+ ...(apiKey ? { apiKey } : {}),
65
+ ...(baseUrl ? { baseURL: baseUrl } : {})
66
+ })(modelName || 'ministral-8b'),
67
+ defaults: { temperature, maxRetries }
43
68
  });
44
69
  case 'anthropic':
45
- return new ChatAnthropic({
46
- ...DEFAULT,
47
- model: 'claude-3-5-haiku-20241022',
48
- ...(apiKey ? { apiKey } : {}),
49
- ...filtered
70
+ return createModelClient({
71
+ model: createAnthropic({
72
+ ...(apiKey ? { apiKey } : {}),
73
+ ...(baseUrl ? { baseURL: baseUrl } : {})
74
+ })(modelName || 'claude-3-5-haiku-20241022'),
75
+ defaults: { temperature, maxRetries }
50
76
  });
51
77
  case 'openai':
52
- return new ChatOpenAI({
53
- ...DEFAULT,
54
- model: 'gpt-4o-mini',
55
- ...(apiKey ? { apiKey } : {}),
56
- ...(baseUrl ? { configuration: { baseURL: baseUrl } } : {}),
57
- ...filtered
78
+ return createModelClient({
79
+ model: createOpenAI({
80
+ ...(apiKey ? { apiKey } : {}),
81
+ ...(baseUrl ? { baseURL: baseUrl } : {})
82
+ })(modelName || 'gpt-4o-mini'),
83
+ defaults: { temperature, maxRetries }
58
84
  });
85
+ case 'openai-compatible':
86
+ {
87
+ const resolvedBaseUrl = requireBaseUrl('openai-compatible');
88
+ return createModelClient({
89
+ model: createOpenAICompatible({
90
+ name: 'openai-compatible',
91
+ baseURL: resolvedBaseUrl,
92
+ ...(apiKey ? { apiKey } : {})
93
+ })(modelName || 'gpt-4o-mini'),
94
+ defaults: { temperature, maxRetries }
95
+ });
96
+ }
59
97
  case 'deepseek':
60
- return new ChatDeepSeek({
61
- ...DEFAULT,
62
- model: 'deepseek-reasoner',
63
- ...(apiKey ? { apiKey } : {}),
64
- ...(baseUrl ? { configuration: { baseURL: baseUrl } } : {}),
65
- ...filtered
66
- });
98
+ {
99
+ const resolvedBaseUrl = requireBaseUrl('deepseek');
100
+ return createModelClient({
101
+ model: createOpenAICompatible({
102
+ name: 'deepseek',
103
+ baseURL: resolvedBaseUrl,
104
+ ...(apiKey ? { apiKey } : {})
105
+ })(modelName || 'deepseek-reasoner'),
106
+ defaults: { temperature, maxRetries }
107
+ });
108
+ }
67
109
  default:
68
110
  throw new Error(`unsupported provider=${provider}`);
69
111
  }
@@ -88,16 +130,14 @@ export class AiTranslateTransform extends AsyncTransform {
88
130
  }
89
131
  log.debug('inp=%j', text);
90
132
  const messages = await promptInvoke({ ...this._promptOpts, text });
91
- const result = await this._model.invoke(messages);
92
- log.debug('out=%j', result.content);
93
- const usage = result
94
- .usage_metadata;
95
- const inputTokens = usage?.input_tokens ?? 0;
96
- const outputTokens = usage?.output_tokens ?? 0;
133
+ const result = await this._model.generateText({ messages });
134
+ log.debug('out=%j', result.text);
135
+ const inputTokens = result.usage?.inputTokens ?? 0;
136
+ const outputTokens = result.usage?.outputTokens ?? 0;
97
137
  this.emit('metadata', { inputTokens, outputTokens });
98
138
  this._metadata.inputTokens += inputTokens;
99
139
  this._metadata.outputTokens += outputTokens;
100
- return !this.push(preserveWhiteSpace(text, replaceMarkerSymbol(result.content)));
140
+ return !this.push(preserveWhiteSpace(text, replaceMarkerSymbol(result.text)));
101
141
  }
102
142
  }
103
143
  //# sourceMappingURL=model.js.map
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/prompt.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import type { ChatPromptValueInterface } from '@langchain/core/prompt_values';
2
- import type { MessageContent } from '@langchain/core/messages';
1
+ import type { ModelMessage } from 'ai';
3
2
  export declare const languages: Record<string, string>;
4
3
  export declare const getLanguageName: (lang: string) => string;
5
4
  export declare const promptInvoke: ({ format, sourceLanguage, targetLanguage, text }: {
@@ -7,6 +6,6 @@ export declare const promptInvoke: ({ format, sourceLanguage, targetLanguage, te
7
6
  sourceLanguage: string;
8
7
  targetLanguage: string;
9
8
  text: string;
10
- }) => Promise<ChatPromptValueInterface>;
11
- export declare const replaceMarkerSymbol: (text: MessageContent) => string;
9
+ }) => ModelMessage[];
10
+ export declare const replaceMarkerSymbol: (text: string) => string;
12
11
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAK9D,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY5C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,WAA4B,CAAA;AAyBxE,eAAO,MAAM,YAAY,GAAI,kDAK1B;IACD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,OAAO,CAAC,wBAAwB,CAMhC,CAAA;AAEJ,eAAO,MAAM,mBAAmB,GAAI,MAAM,cAAc,WAMvD,CAAA"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAKtC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY5C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,WAA4B,CAAA;AA0BxE,eAAO,MAAM,YAAY,GAAI,kDAK1B;IACD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,YAAY,EAUf,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,WAM/C,CAAA"}
package/dist/prompt.js CHANGED
@@ -1,4 +1,3 @@
1
- import { ChatPromptTemplate } from '@langchain/core/prompts';
2
1
  import { logger } from './logger.js';
3
2
  const log = logger('prompt');
4
3
  export const languages = {
@@ -15,7 +14,7 @@ export const languages = {
15
14
  'zh-TW': 'Chinese-traditional'
16
15
  };
17
16
  export const getLanguageName = (lang) => languages[lang] || lang;
18
- const systemPrompt = 'You are an AI-driven advanced translation system, specifically designed to ' +
17
+ const systemPromptTemplate = 'You are an AI-driven advanced translation system, specifically designed to ' +
19
18
  'translate structured and technical documents. ' +
20
19
  'You will receive a text snippet from a file formatted as "{format}"\n\n' +
21
20
  'Your task is to **accurately translate** the text enclosed between the 🔤 ' +
@@ -31,16 +30,18 @@ const systemPrompt = 'You are an AI-driven advanced translation system, specific
31
30
  'adding summaries or changing the content in any way. ' +
32
31
  'Do not skip or modify any part of the text. Ensure that the output is a ' +
33
32
  'direct translation, and that the original structure and meaning are preserved.';
34
- const promptTemplate = ChatPromptTemplate.fromMessages([
35
- ['system', systemPrompt],
36
- ['user', '🔤{text}🔤']
37
- ]);
38
- export const promptInvoke = ({ format = 'markdown', sourceLanguage, targetLanguage, text = '' }) => promptTemplate.invoke({
39
- format,
40
- sourceLanguage: getLanguageName(sourceLanguage),
41
- targetLanguage: getLanguageName(targetLanguage),
42
- text
43
- });
33
+ const fillTemplate = (template, vars) => Object.keys(vars).reduce((acc, key) => acc.replaceAll(`{${key}}`, vars[key]), template);
34
+ export const promptInvoke = ({ format = 'markdown', sourceLanguage, targetLanguage, text = '' }) => {
35
+ const systemPrompt = fillTemplate(systemPromptTemplate, {
36
+ format,
37
+ sourceLanguage: getLanguageName(sourceLanguage),
38
+ targetLanguage: getLanguageName(targetLanguage)
39
+ });
40
+ return [
41
+ { role: 'system', content: systemPrompt },
42
+ { role: 'user', content: `🔤${text}🔤` }
43
+ ];
44
+ };
44
45
  export const replaceMarkerSymbol = (text) => {
45
46
  if (typeof text === 'string') {
46
47
  return text.replace(/^\s*🔤/, '').replace(/🔤\s*$/, '');
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAE5B,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,qBAAqB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;AAExE,MAAM,YAAY,GAChB,6EAA6E;IAC7E,gDAAgD;IAChD,yEAAyE;IACzE,4EAA4E;IAC5E,yDAAyD;IACzD,yEAAyE;IACzE,8EAA8E;IAC9E,iFAAiF;IACjF,+EAA+E;IAC/E,kBAAkB;IAClB,sEAAsE;IACtE,2FAA2F;IAC3F,4EAA4E;IAC5E,uDAAuD;IACvD,0EAA0E;IAC1E,gFAAgF,CAAA;AAElF,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC;IACrD,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,MAAM,EAAE,YAAY,CAAC;CACvB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,GAAG,UAAU,EACnB,cAAc,EACd,cAAc,EACd,IAAI,GAAG,EAAE,EAMV,EAAqC,EAAE,CACtC,cAAc,CAAC,MAAM,CAAC;IACpB,MAAM;IACN,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;IAC/C,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;IAC/C,IAAI;CACL,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAoB,EAAE,EAAE;IAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACf,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAE5B,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,qBAAqB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;AAExE,MAAM,oBAAoB,GACxB,6EAA6E;IAC7E,gDAAgD;IAChD,yEAAyE;IACzE,4EAA4E;IAC5E,yDAAyD;IACzD,yEAAyE;IACzE,8EAA8E;IAC9E,iFAAiF;IACjF,+EAA+E;IAC/E,kBAAkB;IAClB,sEAAsE;IACtE,2FAA2F;IAC3F,4EAA4E;IAC5E,uDAAuD;IACvD,0EAA0E;IAC1E,gFAAgF,CAAA;AAElF,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,IAA4B,EAAE,EAAE,CACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EACnD,QAAQ,CACT,CAAA;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,GAAG,UAAU,EACnB,cAAc,EACd,cAAc,EACd,IAAI,GAAG,EAAE,EAMV,EAAkB,EAAE;IACnB,MAAM,YAAY,GAAG,YAAY,CAAC,oBAAoB,EAAE;QACtD,MAAM;QACN,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;QAC/C,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;KAChD,CAAC,CAAA;IACF,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE;KACzC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACf,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thor123141245r/ai-translate",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -30,13 +30,12 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@commenthol/app-config": "^0.1.1",
33
- "@langchain/anthropic": "^0.3.15",
34
- "@langchain/core": "^0.3.42",
35
- "@langchain/deepseek": "^0.0.1",
36
- "@langchain/mistralai": "^0.2.0",
37
- "@langchain/ollama": "^0.2.0",
38
- "@langchain/openai": "^0.4.4",
39
33
  "@langchain/textsplitters": "^0.1.0",
34
+ "@ai-sdk/anthropic": "^3.0.23",
35
+ "@ai-sdk/mistral": "^3.0.12",
36
+ "@ai-sdk/openai": "^3.0.18",
37
+ "@ai-sdk/openai-compatible": "^2.0.18",
38
+ "ai": "^6.0.49",
40
39
  "debug-level": "^4.1.1"
41
40
  },
42
41
  "devDependencies": {