@aalis/api-llm 0.10.0 → 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/README.md +2 -2
- package/dist/index.d.ts +5 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ToolDefinition } from '@aalis/api-tools';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ServiceRef } from '@aalis/core';
|
|
3
3
|
import type { Message, ToolCall } from '@aalis/schema-message';
|
|
4
4
|
export interface ChatResponse {
|
|
5
5
|
content: string | null;
|
|
@@ -117,7 +117,7 @@ export interface LLMModel {
|
|
|
117
117
|
/**
|
|
118
118
|
* 让管理面板(webui)触发该 provider 重新探测远端模型列表并 diff 当前已注册 entries。
|
|
119
119
|
*
|
|
120
|
-
* - **远端动态发现型** provider(Ollama / OpenAI
|
|
120
|
+
* - **远端动态发现型** provider(Ollama / OpenAI)应实现:重新拉取模型列表端点(如 `{baseUrl}/models`)等
|
|
121
121
|
* 并合并 `customModels`、按 model id 增删 `'llm'` entries。
|
|
122
122
|
* - **静态契约型** provider(如 DeepSeek 单 model)可不实现:webui 端检测到无 refresh
|
|
123
123
|
* 就不显示"刷新"按钮。
|
|
@@ -185,7 +185,7 @@ export interface ModelRef {
|
|
|
185
185
|
* 列出(可按能力过滤的)LLM model entries,供 `/model` 列表与前端下拉用。
|
|
186
186
|
* 能力源为 `instance.capabilities`(model 自带元数据),是展示/列举用途,非 DI 选择。
|
|
187
187
|
*/
|
|
188
|
-
export declare function listLLMModels(
|
|
188
|
+
export declare function listLLMModels(source: ServiceRef<LLMModel>, opts?: {
|
|
189
189
|
caps?: readonly LLMCapability[];
|
|
190
190
|
}): LLMModelEntry[];
|
|
191
191
|
/**
|
|
@@ -199,10 +199,6 @@ export declare function listLLMModels(ctx: Context, opts?: {
|
|
|
199
199
|
*
|
|
200
200
|
* requiredCaps 按 handle 元数据 `instance.capabilities` 过滤。找不到返回 undefined。
|
|
201
201
|
*/
|
|
202
|
-
export declare function resolveLLMModel(
|
|
203
|
-
declare
|
|
204
|
-
interface ServiceTypeMap {
|
|
205
|
-
llm: LLMModel;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
202
|
+
export declare function resolveLLMModel(source: ServiceRef<LLMModel>, ref?: ModelRef | null, requiredCaps?: LLMCapability[]): LLMModelEntry | undefined;
|
|
203
|
+
export declare const llm: import("@aalis/core").ServiceDescriptor<LLMModel, ServiceRef<LLMModel>>;
|
|
208
204
|
//# 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":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// 提供完整的 LLM 抽象 + 能力声明框架。
|
|
4
4
|
// 任何需要调用或实现 LLM 服务的插件都应从本包导入相关类型。
|
|
5
|
+
import { defineService } from '@aalis/core';
|
|
5
6
|
export const LLMCapabilities = {
|
|
6
7
|
Chat: 'chat',
|
|
7
8
|
ToolCalling: 'tool_calling',
|
|
@@ -16,8 +17,8 @@ export const LLMCapabilities = {
|
|
|
16
17
|
* 按能力过滤 LLM entries —— 能力源为 handle 元数据 `instance.capabilities`,
|
|
17
18
|
* 不再依赖 core 的能力过滤(core 已不做能力选择,服务选择走配置 + 按名解析)。
|
|
18
19
|
*/
|
|
19
|
-
function listLLMEntries(
|
|
20
|
-
const all =
|
|
20
|
+
function listLLMEntries(source, caps) {
|
|
21
|
+
const all = source.all();
|
|
21
22
|
if (!caps || caps.length === 0)
|
|
22
23
|
return all;
|
|
23
24
|
return all.filter(e => caps.every(c => (e.instance.capabilities ?? []).includes(c)));
|
|
@@ -26,8 +27,8 @@ function listLLMEntries(ctx, caps) {
|
|
|
26
27
|
* 列出(可按能力过滤的)LLM model entries,供 `/model` 列表与前端下拉用。
|
|
27
28
|
* 能力源为 `instance.capabilities`(model 自带元数据),是展示/列举用途,非 DI 选择。
|
|
28
29
|
*/
|
|
29
|
-
export function listLLMModels(
|
|
30
|
-
return listLLMEntries(
|
|
30
|
+
export function listLLMModels(source, opts) {
|
|
31
|
+
return listLLMEntries(source, opts?.caps);
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
34
|
* 把 ref 解析为最匹配的 LLMModel entry。
|
|
@@ -40,8 +41,8 @@ export function listLLMModels(ctx, opts) {
|
|
|
40
41
|
*
|
|
41
42
|
* requiredCaps 按 handle 元数据 `instance.capabilities` 过滤。找不到返回 undefined。
|
|
42
43
|
*/
|
|
43
|
-
export function resolveLLMModel(
|
|
44
|
-
const all = listLLMEntries(
|
|
44
|
+
export function resolveLLMModel(source, ref, requiredCaps) {
|
|
45
|
+
const all = listLLMEntries(source, requiredCaps);
|
|
45
46
|
if (ref?.provider && ref?.model)
|
|
46
47
|
return all.find(e => e.contextId === `${ref.provider}/${ref.model}`);
|
|
47
48
|
if (ref?.provider)
|
|
@@ -50,4 +51,7 @@ export function resolveLLMModel(ctx, ref, requiredCaps) {
|
|
|
50
51
|
return all.find(e => e.instance.id === ref.model);
|
|
51
52
|
return all[0];
|
|
52
53
|
}
|
|
54
|
+
// ----- 服务类型注册(declaration merging)-----
|
|
55
|
+
// ----- 服务描述符(按激活绑定;调用型:绑定接口是 ServiceRef)-----
|
|
56
|
+
export const llm = defineService('llm');
|
|
53
57
|
//# 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":"AAAA,uBAAuB;AACvB,EAAE;AACF,yBAAyB;AACzB,kCAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,EAAE;AACF,yBAAyB;AACzB,kCAAkC;AAIlC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkK5C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,cAAc;IAC3B,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,kBAAkB,EAAE,qBAAqB;IACzC,KAAK,EAAE,OAAO;CAC0B,CAAC;AAsC3C;;;GAGG;AACH,SAAS,cAAc,CAAC,MAA4B,EAAE,IAA+B;IACnF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC3C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,MAA4B,EAC5B,IAA0C;IAE1C,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA4B,EAC5B,GAAqB,EACrB,YAA8B;IAE9B,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,KAAK;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACtG,IAAI,GAAG,EAAE,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACpF,IAAI,GAAG,EAAE,KAAK;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC;AAED,yCAAyC;AAEzC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,GAAG,GAAG,aAAa,CAAW,KAAK,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/api-llm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,18 +21,18 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@aalis/schema-message": ">=0.5.1 <1.0.0",
|
|
23
23
|
"@aalis/api-tools": ">=0.5.1 <1.0.0",
|
|
24
|
-
"@aalis/schema-config": ">=0.
|
|
24
|
+
"@aalis/schema-config": ">=0.12.0 <1.0.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.0.0",
|
|
28
28
|
"typescript": "^5.7.0",
|
|
29
|
-
"@aalis/core": "0.
|
|
29
|
+
"@aalis/core": "0.17.0"
|
|
30
30
|
},
|
|
31
31
|
"aalis": {
|
|
32
32
|
"types": true
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@aalis/core": ">=0.
|
|
35
|
+
"@aalis/core": ">=0.17.0 <1.0.0"
|
|
36
36
|
},
|
|
37
37
|
"keywords": [
|
|
38
38
|
"aalis",
|