@aalis/plugin-embedding-openai 0.10.1 → 0.11.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/index.d.ts +6 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -35
- package/dist/index.js.map +1 -1
- package/package.json +11 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
export declare const reusable = true;
|
|
8
|
-
export declare const configSchema: ConfigSchema;
|
|
9
|
-
export declare function apply(ctx: Context, config: Record<string, unknown>): Promise<void>;
|
|
1
|
+
declare const _default: import("@aalis/core").PluginDefinition<{
|
|
2
|
+
config: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>>;
|
|
3
|
+
logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Logger, import("@aalis/core").Logger>;
|
|
4
|
+
provide: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Provide, import("@aalis/core").Provide>;
|
|
5
|
+
}>;
|
|
6
|
+
export default _default;
|
|
10
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAoFA,wBAsCG"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export const provides = ['embedding'];
|
|
6
|
-
export const reusable = true;
|
|
7
|
-
export const configSchema = {
|
|
1
|
+
import { embedding } from '@aalis/api-embedding';
|
|
2
|
+
import { config, definePlugin, logger, provide } from '@aalis/core';
|
|
3
|
+
// ===== 配置 =====
|
|
4
|
+
const configSchema = {
|
|
8
5
|
apiKey: { type: 'string', label: 'API Key', required: true, secret: true, description: 'OpenAI API 密钥' },
|
|
9
6
|
baseUrl: {
|
|
10
7
|
type: 'string',
|
|
@@ -38,7 +35,9 @@ class OpenAIEmbeddingService {
|
|
|
38
35
|
this.apiKey = apiKey;
|
|
39
36
|
this.timeoutMs = Math.max(1000, timeoutMs);
|
|
40
37
|
}
|
|
41
|
-
async embed(text) {
|
|
38
|
+
async embed(text, options) {
|
|
39
|
+
options?.signal?.throwIfAborted();
|
|
40
|
+
const timeoutSignal = AbortSignal.timeout(this.timeoutMs);
|
|
42
41
|
const res = await fetch(`${this.baseUrl}/embeddings`, {
|
|
43
42
|
method: 'POST',
|
|
44
43
|
headers: {
|
|
@@ -49,7 +48,7 @@ class OpenAIEmbeddingService {
|
|
|
49
48
|
// 没有 signal 的话这次请求永不自行了结:apply 的启动探测 await 它,而插件激活是串行的
|
|
50
49
|
// (PluginManager.recompute 逐个 await activatePlugin),一个卡住的 apply 会钉住整条引导链;
|
|
51
50
|
// 索引路径上则是 memory-vector 的一个并发槽被无限期占用。
|
|
52
|
-
signal: AbortSignal.
|
|
51
|
+
signal: options?.signal ? AbortSignal.any([timeoutSignal, options.signal]) : timeoutSignal,
|
|
53
52
|
});
|
|
54
53
|
if (!res.ok) {
|
|
55
54
|
throw new Error(`OpenAI embedding 请求失败: ${res.status} ${res.statusText}`);
|
|
@@ -74,30 +73,39 @@ class OpenAIEmbeddingService {
|
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
// ===== 插件入口 =====
|
|
77
|
-
export
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
76
|
+
export default definePlugin({
|
|
77
|
+
name: '@aalis/plugin-embedding-openai',
|
|
78
|
+
displayName: 'OpenAI Embedding',
|
|
79
|
+
subsystem: 'embedding',
|
|
80
|
+
configSchema,
|
|
81
|
+
reusable: true,
|
|
82
|
+
provides: [embedding],
|
|
83
|
+
uses: { config, logger, provide },
|
|
84
|
+
async apply({ config, logger, provide }) {
|
|
85
|
+
const apiKey = config.apiKey;
|
|
86
|
+
if (!apiKey) {
|
|
87
|
+
throw new Error('OpenAI Embedding 插件需要配置 apiKey');
|
|
88
|
+
}
|
|
89
|
+
let baseUrl = config.baseUrl ?? 'https://api.openai.com/v1';
|
|
90
|
+
// 一次性迁移(baseUrl 改「完整前缀」语义):config-sync 会把旧默认值物化进配置文件,
|
|
91
|
+
// 精确命中旧默认时就地升级;自定义端点见 CHANGELOG 迁移说明。
|
|
92
|
+
if (baseUrl === 'https://api.openai.com') {
|
|
93
|
+
logger.warn('baseUrl 语义已改为完整前缀(插件不再自动拼 /v1):旧默认值已自动升级为 https://api.openai.com/v1');
|
|
94
|
+
baseUrl = 'https://api.openai.com/v1';
|
|
95
|
+
}
|
|
96
|
+
const model = config.model ?? 'text-embedding-3-small';
|
|
97
|
+
const timeoutMs = config.timeoutMs ?? 30000;
|
|
98
|
+
const service = new OpenAIEmbeddingService(baseUrl, model, apiKey, timeoutMs);
|
|
99
|
+
// 启动时检查连通性(失败不阻塞,只警告)
|
|
100
|
+
try {
|
|
101
|
+
await service.embed('ping');
|
|
102
|
+
logger.info(`OpenAI Embedding 已就绪: ${model} @ ${baseUrl}`);
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
106
|
+
logger.warn(`OpenAI Embedding 连通性检查失败 (${baseUrl}, model=${model}): ${msg},服务仍将注册`);
|
|
107
|
+
}
|
|
108
|
+
provide(embedding, service, { label: `OpenAI / ${model}` });
|
|
109
|
+
},
|
|
110
|
+
});
|
|
103
111
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-embedding-openai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,22 +26,27 @@
|
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.0.0",
|
|
28
28
|
"typescript": "^5.7.0",
|
|
29
|
-
"@aalis/core": "0.
|
|
30
|
-
"@aalis/api-
|
|
31
|
-
"@aalis/api-webui": "0.9.2"
|
|
29
|
+
"@aalis/core": "0.17.0",
|
|
30
|
+
"@aalis/api-webui": "0.10.0"
|
|
32
31
|
},
|
|
33
32
|
"peerDependencies": {
|
|
34
|
-
"@aalis/core": ">=0.
|
|
33
|
+
"@aalis/core": ">=0.17.0 <1.0.0"
|
|
35
34
|
},
|
|
36
35
|
"aalis": {
|
|
37
36
|
"service": {
|
|
38
37
|
"provides": [
|
|
39
38
|
"embedding"
|
|
39
|
+
],
|
|
40
|
+
"required": [
|
|
41
|
+
"config",
|
|
42
|
+
"logger",
|
|
43
|
+
"provide"
|
|
40
44
|
]
|
|
41
45
|
}
|
|
42
46
|
},
|
|
43
47
|
"dependencies": {
|
|
44
|
-
"@aalis/
|
|
48
|
+
"@aalis/api-embedding": ">=0.6.0 <1.0.0",
|
|
49
|
+
"@aalis/schema-config": ">=0.12.0 <1.0.0"
|
|
45
50
|
},
|
|
46
51
|
"scripts": {
|
|
47
52
|
"build": "tsc",
|