markdown-ai-rewriter 0.4.0 → 0.5.0
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/dist/cli.js +135 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/providers/anthropic.d.ts.map +1 -1
- package/dist/core/providers/anthropic.js +3 -2
- package/dist/core/providers/anthropic.js.map +1 -1
- package/dist/core/providers/azure-openai.d.ts.map +1 -1
- package/dist/core/providers/azure-openai.js +4 -3
- package/dist/core/providers/azure-openai.js.map +1 -1
- package/dist/core/providers/base.d.ts +2 -2
- package/dist/core/providers/base.d.ts.map +1 -1
- package/dist/core/providers/base.js +19 -4
- package/dist/core/providers/base.js.map +1 -1
- package/dist/core/providers/minimax.d.ts.map +1 -1
- package/dist/core/providers/minimax.js +4 -3
- package/dist/core/providers/minimax.js.map +1 -1
- package/dist/core/providers/openai-compatible.d.ts.map +1 -1
- package/dist/core/providers/openai-compatible.js +3 -2
- package/dist/core/providers/openai-compatible.js.map +1 -1
- package/dist/core/providers/openai.d.ts.map +1 -1
- package/dist/core/providers/openai.js +4 -3
- package/dist/core/providers/openai.js.map +1 -1
- package/dist/core/rewriter.d.ts +9 -0
- package/dist/core/rewriter.d.ts.map +1 -1
- package/dist/core/rewriter.js +116 -11
- package/dist/core/rewriter.js.map +1 -1
- package/dist/core/text-providers/anthropic.d.ts +12 -0
- package/dist/core/text-providers/anthropic.d.ts.map +1 -0
- package/dist/core/text-providers/anthropic.js +78 -0
- package/dist/core/text-providers/anthropic.js.map +1 -0
- package/dist/core/text-providers/azure-openai.d.ts +15 -0
- package/dist/core/text-providers/azure-openai.d.ts.map +1 -0
- package/dist/core/text-providers/azure-openai.js +87 -0
- package/dist/core/text-providers/azure-openai.js.map +1 -0
- package/dist/core/text-providers/base.d.ts +12 -0
- package/dist/core/text-providers/base.d.ts.map +1 -0
- package/dist/core/text-providers/base.js +66 -0
- package/dist/core/text-providers/base.js.map +1 -0
- package/dist/core/text-providers/deepseek.d.ts +6 -0
- package/dist/core/text-providers/deepseek.d.ts.map +1 -0
- package/dist/core/text-providers/deepseek.js +12 -0
- package/dist/core/text-providers/deepseek.js.map +1 -0
- package/dist/core/text-providers/doubao.d.ts +6 -0
- package/dist/core/text-providers/doubao.d.ts.map +1 -0
- package/dist/core/text-providers/doubao.js +12 -0
- package/dist/core/text-providers/doubao.js.map +1 -0
- package/dist/core/text-providers/gemini.d.ts +6 -0
- package/dist/core/text-providers/gemini.d.ts.map +1 -0
- package/dist/core/text-providers/gemini.js +12 -0
- package/dist/core/text-providers/gemini.js.map +1 -0
- package/dist/core/text-providers/glm.d.ts +6 -0
- package/dist/core/text-providers/glm.d.ts.map +1 -0
- package/dist/core/text-providers/glm.js +12 -0
- package/dist/core/text-providers/glm.js.map +1 -0
- package/dist/core/text-providers/minimax.d.ts +20 -0
- package/dist/core/text-providers/minimax.d.ts.map +1 -0
- package/dist/core/text-providers/minimax.js +88 -0
- package/dist/core/text-providers/minimax.js.map +1 -0
- package/dist/core/text-providers/openai-compatible.d.ts +14 -0
- package/dist/core/text-providers/openai-compatible.d.ts.map +1 -0
- package/dist/core/text-providers/openai-compatible.js +82 -0
- package/dist/core/text-providers/openai-compatible.js.map +1 -0
- package/dist/core/text-providers/openai.d.ts +12 -0
- package/dist/core/text-providers/openai.d.ts.map +1 -0
- package/dist/core/text-providers/openai.js +77 -0
- package/dist/core/text-providers/openai.js.map +1 -0
- package/dist/core/text-providers/openrouter.d.ts +6 -0
- package/dist/core/text-providers/openrouter.d.ts.map +1 -0
- package/dist/core/text-providers/openrouter.js +12 -0
- package/dist/core/text-providers/openrouter.js.map +1 -0
- package/dist/core/text-providers/qwen.d.ts +6 -0
- package/dist/core/text-providers/qwen.d.ts.map +1 -0
- package/dist/core/text-providers/qwen.js +12 -0
- package/dist/core/text-providers/qwen.js.map +1 -0
- package/dist/core/text-providers/wenxin.d.ts +6 -0
- package/dist/core/text-providers/wenxin.d.ts.map +1 -0
- package/dist/core/text-providers/wenxin.js +12 -0
- package/dist/core/text-providers/wenxin.js.map +1 -0
- package/dist/core/video-generator.d.ts +65 -0
- package/dist/core/video-generator.d.ts.map +1 -0
- package/dist/core/video-generator.js +140 -0
- package/dist/core/video-generator.js.map +1 -0
- package/dist/core/video-providers/doubao.d.ts +52 -0
- package/dist/core/video-providers/doubao.d.ts.map +1 -0
- package/dist/core/video-providers/doubao.js +148 -0
- package/dist/core/video-providers/doubao.js.map +1 -0
- package/dist/core/video-providers/index.d.ts +6 -0
- package/dist/core/video-providers/index.d.ts.map +1 -0
- package/dist/core/video-providers/index.js +16 -0
- package/dist/core/video-providers/index.js.map +1 -0
- package/dist/core/video-providers/kling.d.ts +27 -0
- package/dist/core/video-providers/kling.d.ts.map +1 -0
- package/dist/core/video-providers/kling.js +113 -0
- package/dist/core/video-providers/kling.js.map +1 -0
- package/dist/core/video-providers/minimax.d.ts +30 -0
- package/dist/core/video-providers/minimax.d.ts.map +1 -0
- package/dist/core/video-providers/minimax.js +133 -0
- package/dist/core/video-providers/minimax.js.map +1 -0
- package/dist/core/video-providers/runway.d.ts +22 -0
- package/dist/core/video-providers/runway.d.ts.map +1 -0
- package/dist/core/video-providers/runway.js +121 -0
- package/dist/core/video-providers/runway.js.map +1 -0
- package/dist/core/video-providers/types.d.ts +41 -0
- package/dist/core/video-providers/types.d.ts.map +1 -0
- package/dist/core/video-providers/types.js +3 -0
- package/dist/core/video-providers/types.js.map +1 -0
- package/dist/index.d.ts +21 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -14
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +36 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/core/rewriter.js
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MarkdownRewriter = void 0;
|
|
4
|
-
const openai_1 = require("./providers/openai");
|
|
5
|
-
const anthropic_1 = require("./providers/anthropic");
|
|
6
|
-
const minimax_1 = require("./providers/minimax");
|
|
7
|
-
const azure_openai_1 = require("./providers/azure-openai");
|
|
8
|
-
const gemini_1 = require("./providers/gemini");
|
|
9
|
-
const deepseek_1 = require("./providers/deepseek");
|
|
10
|
-
const openrouter_1 = require("./providers/openrouter");
|
|
11
|
-
const qwen_1 = require("./providers/qwen");
|
|
12
|
-
const glm_1 = require("./providers/glm");
|
|
13
|
-
const doubao_1 = require("./providers/doubao");
|
|
14
|
-
const wenxin_1 = require("./providers/wenxin");
|
|
4
|
+
const openai_1 = require("./text-providers/openai");
|
|
5
|
+
const anthropic_1 = require("./text-providers/anthropic");
|
|
6
|
+
const minimax_1 = require("./text-providers/minimax");
|
|
7
|
+
const azure_openai_1 = require("./text-providers/azure-openai");
|
|
8
|
+
const gemini_1 = require("./text-providers/gemini");
|
|
9
|
+
const deepseek_1 = require("./text-providers/deepseek");
|
|
10
|
+
const openrouter_1 = require("./text-providers/openrouter");
|
|
11
|
+
const qwen_1 = require("./text-providers/qwen");
|
|
12
|
+
const glm_1 = require("./text-providers/glm");
|
|
13
|
+
const doubao_1 = require("./text-providers/doubao");
|
|
14
|
+
const wenxin_1 = require("./text-providers/wenxin");
|
|
15
15
|
const quota_manager_1 = require("./quota-manager");
|
|
16
16
|
const section_rewriter_1 = require("./section-rewriter");
|
|
17
17
|
const full_rewriter_1 = require("./full-rewriter");
|
|
18
18
|
const image_processor_1 = require("./image-processor");
|
|
19
|
+
const video_generator_1 = require("./video-generator");
|
|
20
|
+
const fs_1 = require("fs");
|
|
21
|
+
const path_1 = require("path");
|
|
19
22
|
const SHARED_OPENAI_KEY = process.env.SHARED_OPENAI_KEY || '';
|
|
20
23
|
class MarkdownRewriter {
|
|
21
24
|
constructor(config) {
|
|
@@ -71,6 +74,19 @@ class MarkdownRewriter {
|
|
|
71
74
|
verbose: config.verbose,
|
|
72
75
|
});
|
|
73
76
|
}
|
|
77
|
+
// 初始化视频生成器(如果配置了)
|
|
78
|
+
if (config.videoProcessing && config.videoProcessing.apiKey) {
|
|
79
|
+
this.videoGenerator = new video_generator_1.VideoGenerator({
|
|
80
|
+
provider: config.videoProcessing.provider,
|
|
81
|
+
apiKey: config.videoProcessing.apiKey,
|
|
82
|
+
model: config.videoProcessing.model,
|
|
83
|
+
duration: config.videoProcessing.duration,
|
|
84
|
+
resolution: config.videoProcessing.resolution,
|
|
85
|
+
aspectRatio: config.videoProcessing.aspectRatio,
|
|
86
|
+
promptOptimizer: config.videoProcessing.promptOptimizer,
|
|
87
|
+
verbose: config.verbose,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
74
90
|
}
|
|
75
91
|
resolveApiKey(config) {
|
|
76
92
|
if (config.apiKey) {
|
|
@@ -150,8 +166,97 @@ class MarkdownRewriter {
|
|
|
150
166
|
console.log(` 处理完成: ${imageResult.success}/${imageResult.processed} 成功`);
|
|
151
167
|
}
|
|
152
168
|
}
|
|
169
|
+
// 生成视频(如果配置了视频生成器)
|
|
170
|
+
if (this.videoGenerator) {
|
|
171
|
+
if (this.config.verbose) {
|
|
172
|
+
console.log('\n🎬 开始生成视频...');
|
|
173
|
+
}
|
|
174
|
+
// 使用当前 provider 生成视频脚本
|
|
175
|
+
const summaryProvider = {
|
|
176
|
+
rewrite: async (text, opts) => {
|
|
177
|
+
return this.provider.rewrite(text, opts);
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
const videoResult = await this.videoGenerator.generateFromMarkdown(result.rewritten, summaryProvider);
|
|
181
|
+
if (videoResult.success && videoResult.videoUrl) {
|
|
182
|
+
// 下载视频到本地
|
|
183
|
+
const outputDir = this.config.videoProcessing?.outputDir ||
|
|
184
|
+
(basePath ? (0, path_1.dirname)(basePath) : '.');
|
|
185
|
+
const videoFileName = `video-${Date.now()}.mp4`;
|
|
186
|
+
const videoPath = (0, path_1.join)(outputDir, videoFileName);
|
|
187
|
+
try {
|
|
188
|
+
const videoResponse = await fetch(videoResult.videoUrl);
|
|
189
|
+
if (videoResponse.ok) {
|
|
190
|
+
const videoBuffer = Buffer.from(await videoResponse.arrayBuffer());
|
|
191
|
+
(0, fs_1.writeFileSync)(videoPath, videoBuffer);
|
|
192
|
+
if (this.config.verbose) {
|
|
193
|
+
console.log(` 视频已保存: ${videoPath}`);
|
|
194
|
+
}
|
|
195
|
+
// 将视频插入到正文上方(头部下方)
|
|
196
|
+
result.rewritten = this.insertVideoToMarkdown(result.rewritten, videoPath);
|
|
197
|
+
result.videoProcessing = {
|
|
198
|
+
success: true,
|
|
199
|
+
videoPath,
|
|
200
|
+
videoUrl: videoResult.videoUrl,
|
|
201
|
+
taskId: videoResult.taskId,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
result.videoProcessing = {
|
|
206
|
+
success: false,
|
|
207
|
+
videoUrl: videoResult.videoUrl,
|
|
208
|
+
error: '视频下载失败',
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (downloadError) {
|
|
213
|
+
result.videoProcessing = {
|
|
214
|
+
success: false,
|
|
215
|
+
videoUrl: videoResult.videoUrl,
|
|
216
|
+
error: downloadError.message,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
result.videoProcessing = {
|
|
222
|
+
success: false,
|
|
223
|
+
error: videoResult.error,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
if (this.config.verbose) {
|
|
227
|
+
console.log(` 视频生成: ${result.videoProcessing?.success ? '成功' : '失败'}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
153
230
|
return result;
|
|
154
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* 将视频插入到 Markdown 正文上方(头部下方)
|
|
234
|
+
*
|
|
235
|
+
* 规则:
|
|
236
|
+
* - 如果有一级标题(# xxx),插入到标题下方
|
|
237
|
+
* - 否则插入到文档开头
|
|
238
|
+
*/
|
|
239
|
+
insertVideoToMarkdown(markdown, videoPath) {
|
|
240
|
+
const lines = markdown.split('\n');
|
|
241
|
+
const videoMarkdown = `\n<video src="${videoPath}" controls width="100%"></video>\n`;
|
|
242
|
+
// 查找第一个一级标题
|
|
243
|
+
let insertIndex = 0;
|
|
244
|
+
for (let i = 0; i < lines.length; i++) {
|
|
245
|
+
const line = lines[i].trim();
|
|
246
|
+
// 匹配一级标题 # xxx
|
|
247
|
+
if (/^#\s+/.test(line)) {
|
|
248
|
+
insertIndex = i + 1;
|
|
249
|
+
// 跳过标题后的空行
|
|
250
|
+
while (insertIndex < lines.length && lines[insertIndex].trim() === '') {
|
|
251
|
+
insertIndex++;
|
|
252
|
+
}
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// 插入视频
|
|
257
|
+
lines.splice(insertIndex, 0, videoMarkdown);
|
|
258
|
+
return lines.join('\n');
|
|
259
|
+
}
|
|
155
260
|
}
|
|
156
261
|
exports.MarkdownRewriter = MarkdownRewriter;
|
|
157
262
|
//# sourceMappingURL=rewriter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewriter.js","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"rewriter.js","sourceRoot":"","sources":["../../src/core/rewriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseProvider } from './base';
|
|
2
|
+
import { RewriteOptions } from '../../types';
|
|
3
|
+
export declare class AnthropicProvider extends BaseProvider {
|
|
4
|
+
name: string;
|
|
5
|
+
private apiKey;
|
|
6
|
+
private model;
|
|
7
|
+
private client;
|
|
8
|
+
constructor(apiKey: string, model?: string);
|
|
9
|
+
private getClient;
|
|
10
|
+
rewrite(text: string, options: RewriteOptions): Promise<string>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,SAAe;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAgC;gBAElC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAqC;YAM1D,SAAS;IAQjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBtE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.AnthropicProvider = void 0;
|
|
37
|
+
const base_1 = require("./base");
|
|
38
|
+
class AnthropicProvider extends base_1.BaseProvider {
|
|
39
|
+
constructor(apiKey, model = 'claude-3-5-sonnet-20241022') {
|
|
40
|
+
super();
|
|
41
|
+
this.name = 'anthropic';
|
|
42
|
+
this.client = null;
|
|
43
|
+
this.apiKey = apiKey;
|
|
44
|
+
this.model = model;
|
|
45
|
+
}
|
|
46
|
+
async getClient() {
|
|
47
|
+
if (!this.client) {
|
|
48
|
+
const Anthropic = await Promise.resolve().then(() => __importStar(require('@anthropic-ai/sdk'))).then(m => m.default || m);
|
|
49
|
+
this.client = new Anthropic({ apiKey: this.apiKey });
|
|
50
|
+
}
|
|
51
|
+
return this.client;
|
|
52
|
+
}
|
|
53
|
+
async rewrite(text, options) {
|
|
54
|
+
try {
|
|
55
|
+
const client = await this.getClient();
|
|
56
|
+
const originalLength = text.length;
|
|
57
|
+
const response = await client.messages.create({
|
|
58
|
+
model: this.model,
|
|
59
|
+
max_tokens: options.maxTokens ?? 2000,
|
|
60
|
+
temperature: options.temperature ?? 0.7,
|
|
61
|
+
system: this.getSystemPrompt(options, originalLength),
|
|
62
|
+
messages: [
|
|
63
|
+
{ role: 'user', content: this.getUserPrompt(text, options.preserveLength) },
|
|
64
|
+
],
|
|
65
|
+
});
|
|
66
|
+
const content = response.content[0];
|
|
67
|
+
return this.cleanupThinkingContent(content.type === 'text' ? content.text.trim() : text);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
if (error.code === 'MODULE_NOT_FOUND') {
|
|
71
|
+
throw new Error('Anthropic SDK not installed. Run: npm install @anthropic-ai/sdk');
|
|
72
|
+
}
|
|
73
|
+
throw new Error(`Anthropic API error: ${error.message}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.AnthropicProvider = AnthropicProvider;
|
|
78
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/core/text-providers/anthropic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAKtC,MAAa,iBAAkB,SAAQ,mBAAY;IAMjD,YAAY,MAAc,EAAE,QAAgB,4BAA4B;QACtE,KAAK,EAAE,CAAC;QANV,SAAI,GAAG,WAAW,CAAC;QAGX,WAAM,GAA2B,IAAI,CAAC;QAI5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,kDAAO,mBAAmB,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAoB,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAuB;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAEnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACrC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC;gBACrD,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;iBAC5E;aACF,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AA5CD,8CA4CC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseProvider } from './base';
|
|
2
|
+
import { RewriteOptions } from '../../types';
|
|
3
|
+
export declare const DEFAULT_AZURE_OPENAI_API_VERSION = "2024-10-21";
|
|
4
|
+
export declare class AzureOpenAIProvider extends BaseProvider {
|
|
5
|
+
name: string;
|
|
6
|
+
private apiKey;
|
|
7
|
+
private deployment;
|
|
8
|
+
private endpoint;
|
|
9
|
+
private apiVersion;
|
|
10
|
+
private client;
|
|
11
|
+
constructor(apiKey: string, deployment?: string, endpoint?: string, apiVersion?: string);
|
|
12
|
+
private getClient;
|
|
13
|
+
rewrite(text: string, options: RewriteOptions): Promise<string>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=azure-openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-openai.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/azure-openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,eAAO,MAAM,gCAAgC,eAAe,CAAC;AAE7D,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,IAAI,SAAkB;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAkC;gBAG9C,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAsB,EAClC,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM;YAeP,SAAS;IAYjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAuBtE"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.AzureOpenAIProvider = exports.DEFAULT_AZURE_OPENAI_API_VERSION = void 0;
|
|
37
|
+
const base_1 = require("./base");
|
|
38
|
+
exports.DEFAULT_AZURE_OPENAI_API_VERSION = '2024-10-21';
|
|
39
|
+
class AzureOpenAIProvider extends base_1.BaseProvider {
|
|
40
|
+
constructor(apiKey, deployment = 'gpt-4o-mini', endpoint, apiVersion) {
|
|
41
|
+
super();
|
|
42
|
+
this.name = 'azure-openai';
|
|
43
|
+
this.client = null;
|
|
44
|
+
this.apiKey = apiKey;
|
|
45
|
+
this.deployment = deployment;
|
|
46
|
+
this.endpoint = endpoint || process.env.AZURE_OPENAI_ENDPOINT || '';
|
|
47
|
+
this.apiVersion = apiVersion || process.env.AZURE_OPENAI_API_VERSION || exports.DEFAULT_AZURE_OPENAI_API_VERSION;
|
|
48
|
+
if (!this.endpoint) {
|
|
49
|
+
throw new Error('Azure OpenAI requires endpoint. Set AZURE_OPENAI_ENDPOINT or pass --base-url when provider is azure-openai.');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async getClient() {
|
|
53
|
+
if (!this.client) {
|
|
54
|
+
const { AzureOpenAI } = await Promise.resolve().then(() => __importStar(require('openai')));
|
|
55
|
+
this.client = new AzureOpenAI({
|
|
56
|
+
apiKey: this.apiKey,
|
|
57
|
+
endpoint: this.endpoint,
|
|
58
|
+
apiVersion: this.apiVersion,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return this.client;
|
|
62
|
+
}
|
|
63
|
+
async rewrite(text, options) {
|
|
64
|
+
try {
|
|
65
|
+
const client = await this.getClient();
|
|
66
|
+
const originalLength = text.length;
|
|
67
|
+
const response = await client.chat.completions.create({
|
|
68
|
+
model: this.deployment,
|
|
69
|
+
messages: [
|
|
70
|
+
{ role: 'system', content: this.getSystemPrompt(options, originalLength) },
|
|
71
|
+
{ role: 'user', content: this.getUserPrompt(text, options.preserveLength) },
|
|
72
|
+
],
|
|
73
|
+
temperature: options.temperature ?? 0.7,
|
|
74
|
+
max_tokens: options.maxTokens ?? 2000,
|
|
75
|
+
});
|
|
76
|
+
return this.cleanupThinkingContent(response.choices[0]?.message?.content?.trim() || text);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (error.code === 'MODULE_NOT_FOUND') {
|
|
80
|
+
throw new Error('OpenAI SDK not installed. Azure OpenAI uses OpenAI SDK. Run: npm install openai');
|
|
81
|
+
}
|
|
82
|
+
throw new Error(`Azure OpenAI API error: ${error.message}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.AzureOpenAIProvider = AzureOpenAIProvider;
|
|
87
|
+
//# sourceMappingURL=azure-openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-openai.js","sourceRoot":"","sources":["../../../src/core/text-providers/azure-openai.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAKzB,QAAA,gCAAgC,GAAG,YAAY,CAAC;AAE7D,MAAa,mBAAoB,SAAQ,mBAAY;IAQnD,YACE,MAAc,EACd,aAAqB,aAAa,EAClC,QAAiB,EACjB,UAAmB;QAEnB,KAAK,EAAE,CAAC;QAbV,SAAI,GAAG,cAAc,CAAC;QAKd,WAAM,GAA6B,IAAI,CAAC;QAS9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,wCAAgC,CAAC;QAEzG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAsB,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAuB;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAEnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACpD,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;oBAC1E,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;iBAC5E;gBACD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;gBACvC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;aACtC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACrG,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AA9DD,kDA8DC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AIProvider, RewriteOptions } from '../../types';
|
|
2
|
+
export declare abstract class BaseProvider implements AIProvider {
|
|
3
|
+
abstract name: string;
|
|
4
|
+
protected getSystemPrompt(options: RewriteOptions, originalLength?: number): string;
|
|
5
|
+
protected getUserPrompt(text: string, preserveLength?: boolean): string;
|
|
6
|
+
/**
|
|
7
|
+
* 清理 AI 思考过程标签和内容
|
|
8
|
+
*/
|
|
9
|
+
protected cleanupThinkingContent(content: string): string;
|
|
10
|
+
abstract rewrite(text: string, options: RewriteOptions): Promise<string>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,8BAAsB,YAAa,YAAW,UAAU;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;IAmCnF,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM;IAQvE;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAmBzD,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CACzE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseProvider = void 0;
|
|
4
|
+
class BaseProvider {
|
|
5
|
+
getSystemPrompt(options, originalLength) {
|
|
6
|
+
const stylePrompts = {
|
|
7
|
+
casual: '用轻松、口语化的风格重写,就像和朋友聊天一样。',
|
|
8
|
+
formal: '用正式、专业的风格重写,适合商务或学术场合。',
|
|
9
|
+
technical: '用技术性、精确的风格重写,保持专业术语。',
|
|
10
|
+
creative: '用创意、生动的风格重写,增加表现力和吸引力。',
|
|
11
|
+
custom: options.prompt || '重写以下内容,保持原意但改变表达方式。',
|
|
12
|
+
};
|
|
13
|
+
// 长度保持指令
|
|
14
|
+
let lengthInstruction = '';
|
|
15
|
+
if (options.preserveLength && originalLength) {
|
|
16
|
+
const minLength = Math.floor(originalLength * 0.85);
|
|
17
|
+
const maxLength = Math.ceil(originalLength * 1.15);
|
|
18
|
+
lengthInstruction = `
|
|
19
|
+
5. 【重要】严格保持与原文相近的长度:
|
|
20
|
+
- 原文约 ${originalLength} 字
|
|
21
|
+
- 你的输出必须在 ${minLength}-${maxLength} 字之间
|
|
22
|
+
- 不要大幅缩减或扩展内容
|
|
23
|
+
- 如果原文有多个段落,保持相似的段落数量`;
|
|
24
|
+
}
|
|
25
|
+
const basePrompt = `你是一个专业的内容重写助手。你的任务是重写给定的文本,要求:
|
|
26
|
+
1. 保持原文的核心意思和信息
|
|
27
|
+
2. 改变表达方式和句式结构
|
|
28
|
+
3. 使用不同的词汇和语言风格
|
|
29
|
+
4. ${stylePrompts[options.style || 'custom']}${lengthInstruction}
|
|
30
|
+
|
|
31
|
+
重要:只返回重写后的内容,不要添加任何解释、前言或后缀。
|
|
32
|
+
严禁输出任何思考过程、推理过程或中间分析。
|
|
33
|
+
严禁输出 <think>...</think>、<reasoning>...</reasoning> 或类似标签。`;
|
|
34
|
+
return basePrompt;
|
|
35
|
+
}
|
|
36
|
+
getUserPrompt(text, preserveLength) {
|
|
37
|
+
if (preserveLength) {
|
|
38
|
+
const charCount = text.length;
|
|
39
|
+
return `请重写以下内容(原文约 ${charCount} 字,请保持相近长度):\n\n${text}`;
|
|
40
|
+
}
|
|
41
|
+
return `请重写以下内容:\n\n${text}`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 清理 AI 思考过程标签和内容
|
|
45
|
+
*/
|
|
46
|
+
cleanupThinkingContent(content) {
|
|
47
|
+
return content
|
|
48
|
+
// 移除 <thinking>...</thinking> 块
|
|
49
|
+
.replace(/<thinking>[\s\S]*?<\/thinking>/gi, '')
|
|
50
|
+
// 移除 <reasoning>...</reasoning> 块
|
|
51
|
+
.replace(/<reasoning>[\s\S]*?<\/reasoning>/gi, '')
|
|
52
|
+
// 移除独立存在的 <thinking> 标签(无闭合)
|
|
53
|
+
.replace(/<thinking>\s*/gi, '')
|
|
54
|
+
// 移除独立存在的 </thinking> 标签
|
|
55
|
+
.replace(/\s*<\/thinking>/gi, '')
|
|
56
|
+
// 移除独立存在的 <reasoning> 标签
|
|
57
|
+
.replace(/<reasoning>\s*/gi, '')
|
|
58
|
+
// 移除独立存在的 </reasoning> 标签
|
|
59
|
+
.replace(/\s*<\/reasoning>/gi, '')
|
|
60
|
+
// 清理多余空行
|
|
61
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
62
|
+
.trim();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.BaseProvider = BaseProvider;
|
|
66
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/core/text-providers/base.ts"],"names":[],"mappings":";;;AAEA,MAAsB,YAAY;IAGtB,eAAe,CAAC,OAAuB,EAAE,cAAuB;QACxE,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,wBAAwB;YAChC,SAAS,EAAE,sBAAsB;YACjC,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,qBAAqB;SAChD,CAAC;QAEF,SAAS;QACT,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,cAAc,IAAI,cAAc,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YACnD,iBAAiB,GAAG;;WAEf,cAAc;eACV,SAAS,IAAI,SAAS;;yBAEZ,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAG;;;;KAIlB,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,iBAAiB;;;;0DAIN,CAAC;QAEvD,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,aAAa,CAAC,IAAY,EAAE,cAAwB;QAC5D,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,OAAO,eAAe,SAAS,mBAAmB,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,eAAe,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACO,sBAAsB,CAAC,OAAe;QAC9C,OAAO,OAAO;YACZ,gCAAgC;aAC/B,OAAO,CAAC,kCAAkC,EAAE,EAAE,CAAC;YAChD,kCAAkC;aACjC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;YAClD,6BAA6B;aAC5B,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC/B,yBAAyB;aACxB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACjC,yBAAyB;aACxB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAChC,0BAA0B;aACzB,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAClC,SAAS;aACR,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;aAC1B,IAAI,EAAE,CAAC;IACZ,CAAC;CAGF;AArED,oCAqEC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenAICompatibleProvider } from './openai-compatible';
|
|
2
|
+
export declare const DEFAULT_DEEPSEEK_BASE_URL = "https://api.deepseek.com/v1";
|
|
3
|
+
export declare class DeepSeekProvider extends OpenAICompatibleProvider {
|
|
4
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=deepseek.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/deepseek.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAEvE,qBAAa,gBAAiB,SAAQ,wBAAwB;gBAChD,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAwB,EAAE,OAAO,CAAC,EAAE,MAAM;CAS9E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeepSeekProvider = exports.DEFAULT_DEEPSEEK_BASE_URL = void 0;
|
|
4
|
+
const openai_compatible_1 = require("./openai-compatible");
|
|
5
|
+
exports.DEFAULT_DEEPSEEK_BASE_URL = 'https://api.deepseek.com/v1';
|
|
6
|
+
class DeepSeekProvider extends openai_compatible_1.OpenAICompatibleProvider {
|
|
7
|
+
constructor(apiKey, model = 'deepseek-chat', baseURL) {
|
|
8
|
+
super('deepseek', apiKey, model, baseURL || process.env.DEEPSEEK_BASE_URL || exports.DEFAULT_DEEPSEEK_BASE_URL, 'DeepSeek uses an OpenAI-compatible endpoint');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.DeepSeekProvider = DeepSeekProvider;
|
|
12
|
+
//# sourceMappingURL=deepseek.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../../src/core/text-providers/deepseek.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,yBAAyB,GAAG,6BAA6B,CAAC;AAEvE,MAAa,gBAAiB,SAAQ,4CAAwB;IAC5D,YAAY,MAAc,EAAE,QAAgB,eAAe,EAAE,OAAgB;QAC3E,KAAK,CACH,UAAU,EACV,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iCAAyB,EACrE,6CAA6C,CAC9C,CAAC;IACJ,CAAC;CACF;AAVD,4CAUC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenAICompatibleProvider } from './openai-compatible';
|
|
2
|
+
export declare const DEFAULT_DOUBAO_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3";
|
|
3
|
+
export declare class DoubaoProvider extends OpenAICompatibleProvider {
|
|
4
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=doubao.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doubao.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/doubao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,uBAAuB,6CAA6C,CAAC;AAElF,qBAAa,cAAe,SAAQ,wBAAwB;gBAC9C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAiC,EAAE,OAAO,CAAC,EAAE,MAAM;CASvF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DoubaoProvider = exports.DEFAULT_DOUBAO_BASE_URL = void 0;
|
|
4
|
+
const openai_compatible_1 = require("./openai-compatible");
|
|
5
|
+
exports.DEFAULT_DOUBAO_BASE_URL = 'https://ark.cn-beijing.volces.com/api/v3';
|
|
6
|
+
class DoubaoProvider extends openai_compatible_1.OpenAICompatibleProvider {
|
|
7
|
+
constructor(apiKey, model = 'doubao-seed-1-6-250615', baseURL) {
|
|
8
|
+
super('doubao', apiKey, model, baseURL || process.env.DOUBAO_BASE_URL || exports.DEFAULT_DOUBAO_BASE_URL, 'Doubao (Volcengine Ark) uses an OpenAI-compatible endpoint');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.DoubaoProvider = DoubaoProvider;
|
|
12
|
+
//# sourceMappingURL=doubao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doubao.js","sourceRoot":"","sources":["../../../src/core/text-providers/doubao.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,uBAAuB,GAAG,0CAA0C,CAAC;AAElF,MAAa,cAAe,SAAQ,4CAAwB;IAC1D,YAAY,MAAc,EAAE,QAAgB,wBAAwB,EAAE,OAAgB;QACpF,KAAK,CACH,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,+BAAuB,EACjE,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF;AAVD,wCAUC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenAICompatibleProvider } from './openai-compatible';
|
|
2
|
+
export declare const DEFAULT_GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai";
|
|
3
|
+
export declare class GeminiProvider extends OpenAICompatibleProvider {
|
|
4
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,uBAAuB,4DAA4D,CAAC;AAEjG,qBAAa,cAAe,SAAQ,wBAAwB;gBAC9C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA2B,EAAE,OAAO,CAAC,EAAE,MAAM;CASjF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeminiProvider = exports.DEFAULT_GEMINI_BASE_URL = void 0;
|
|
4
|
+
const openai_compatible_1 = require("./openai-compatible");
|
|
5
|
+
exports.DEFAULT_GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta/openai';
|
|
6
|
+
class GeminiProvider extends openai_compatible_1.OpenAICompatibleProvider {
|
|
7
|
+
constructor(apiKey, model = 'gemini-2.0-flash', baseURL) {
|
|
8
|
+
super('gemini', apiKey, model, baseURL || process.env.GEMINI_BASE_URL || exports.DEFAULT_GEMINI_BASE_URL, 'Gemini uses an OpenAI-compatible endpoint');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.GeminiProvider = GeminiProvider;
|
|
12
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/core/text-providers/gemini.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,uBAAuB,GAAG,yDAAyD,CAAC;AAEjG,MAAa,cAAe,SAAQ,4CAAwB;IAC1D,YAAY,MAAc,EAAE,QAAgB,kBAAkB,EAAE,OAAgB;QAC9E,KAAK,CACH,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,+BAAuB,EACjE,2CAA2C,CAC5C,CAAC;IACJ,CAAC;CACF;AAVD,wCAUC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenAICompatibleProvider } from './openai-compatible';
|
|
2
|
+
export declare const DEFAULT_GLM_BASE_URL = "https://open.bigmodel.cn/api/paas/v4";
|
|
3
|
+
export declare class GLMProvider extends OpenAICompatibleProvider {
|
|
4
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=glm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glm.d.ts","sourceRoot":"","sources":["../../../src/core/text-providers/glm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAE3E,qBAAa,WAAY,SAAQ,wBAAwB;gBAC3C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAqB,EAAE,OAAO,CAAC,EAAE,MAAM;CAS3E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GLMProvider = exports.DEFAULT_GLM_BASE_URL = void 0;
|
|
4
|
+
const openai_compatible_1 = require("./openai-compatible");
|
|
5
|
+
exports.DEFAULT_GLM_BASE_URL = 'https://open.bigmodel.cn/api/paas/v4';
|
|
6
|
+
class GLMProvider extends openai_compatible_1.OpenAICompatibleProvider {
|
|
7
|
+
constructor(apiKey, model = 'glm-4-plus', baseURL) {
|
|
8
|
+
super('glm', apiKey, model, baseURL || process.env.GLM_BASE_URL || exports.DEFAULT_GLM_BASE_URL, 'GLM (BigModel) uses an OpenAI-compatible endpoint');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.GLMProvider = GLMProvider;
|
|
12
|
+
//# sourceMappingURL=glm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glm.js","sourceRoot":"","sources":["../../../src/core/text-providers/glm.ts"],"names":[],"mappings":";;;AAAA,2DAA+D;AAElD,QAAA,oBAAoB,GAAG,sCAAsC,CAAC;AAE3E,MAAa,WAAY,SAAQ,4CAAwB;IACvD,YAAY,MAAc,EAAE,QAAgB,YAAY,EAAE,OAAgB;QACxE,KAAK,CACH,KAAK,EACL,MAAM,EACN,KAAK,EACL,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,4BAAoB,EAC3D,mDAAmD,CACpD,CAAC;IACJ,CAAC;CACF;AAVD,kCAUC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseProvider } from './base';
|
|
2
|
+
import { RewriteOptions } from '../../types';
|
|
3
|
+
/** MiniMax OpenAI-compatible base URL (see https://platform.minimax.io/docs/api-reference/text-openai-api) */
|
|
4
|
+
export declare const DEFAULT_MINIMAX_BASE_URL = "https://api.minimaxi.com/v1";
|
|
5
|
+
export declare class MinimaxProvider extends BaseProvider {
|
|
6
|
+
name: string;
|
|
7
|
+
private apiKey;
|
|
8
|
+
private model;
|
|
9
|
+
private baseURL;
|
|
10
|
+
private client;
|
|
11
|
+
/**
|
|
12
|
+
* @param apiKey MiniMax API key from the console
|
|
13
|
+
* @param model e.g. MiniMax-M2.1, MiniMax-M2.7 (see MiniMax docs)
|
|
14
|
+
* @param baseURL Override API base; default MINIMAX_BASE_URL env or `https://api.minimaxi.com/v1`
|
|
15
|
+
*/
|
|
16
|
+
constructor(apiKey: string, model?: string, baseURL?: string);
|
|
17
|
+
private getClient;
|
|
18
|
+
rewrite(text: string, options: RewriteOptions): Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=minimax.d.ts.map
|