koishi-plugin-chatluna-google-gemini-adapter 1.2.19 → 1.2.21

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.
@@ -1,4 +1,4 @@
1
- import { ChatGenerationChunk } from '@langchain/core/outputs';
1
+ import { ChatGeneration, ChatGenerationChunk } from '@langchain/core/outputs';
2
2
  import { EmbeddingsRequester, EmbeddingsRequestParams, ModelRequester, ModelRequestParams } from 'koishi-plugin-chatluna/llm-core/platform/api';
3
3
  import { ClientConfig, ClientConfigPool } from 'koishi-plugin-chatluna/llm-core/platform/config';
4
4
  import { Config } from '.';
@@ -8,9 +8,27 @@ import { Context } from 'koishi';
8
8
  export declare class GeminiRequester extends ModelRequester implements EmbeddingsRequester {
9
9
  _pluginConfig: Config;
10
10
  constructor(ctx: Context, _configPool: ClientConfigPool<ClientConfig>, _pluginConfig: Config, _plugin: ChatLunaPlugin);
11
+ completion(params: ModelRequestParams): Promise<ChatGeneration>;
11
12
  completionStreamInternal(params: ModelRequestParams): AsyncGenerator<ChatGenerationChunk>;
13
+ completionInternal(params: ModelRequestParams): Promise<ChatGeneration>;
12
14
  embeddings(params: EmbeddingsRequestParams): Promise<number[] | number[][]>;
15
+ private _prepareEmbeddingsInput;
16
+ private _createEmbeddingsRequest;
17
+ private _processEmbeddingsResponse;
13
18
  getModels(): Promise<GeminiModelInfo[]>;
19
+ private _parseModelsResponse;
20
+ private _filterAndTransformModels;
21
+ private _processResponse;
22
+ private _processResponseStream;
23
+ private _createStreamContext;
24
+ private _setupStreamTransform;
25
+ private _createTransformStream;
26
+ private _processCandidateChunk;
27
+ private _processChunks;
28
+ private _processChunk;
29
+ private _updateFunctionCall;
30
+ private _handleFinalContent;
31
+ private _createMessageChunk;
14
32
  private _post;
15
33
  private _get;
16
34
  private _concatUrl;
package/lib/types.d.ts CHANGED
@@ -67,6 +67,14 @@ export interface ChatResponse {
67
67
  probability: string;
68
68
  }[];
69
69
  };
70
+ usageMetadata: {
71
+ promptTokenCount: number;
72
+ cachedContentTokenCount: number;
73
+ candidatesTokenCount: number;
74
+ toolUsePromptTokenCount: number;
75
+ thoughtsTokenCount: number;
76
+ totalTokenCount: number;
77
+ };
70
78
  }
71
79
  export interface ChatCompletionFunction {
72
80
  name: string;
package/lib/utils.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { AIMessageChunk, BaseMessage, ChatMessageChunk, HumanMessageChunk, MessageType, SystemMessageChunk } from '@langchain/core/messages';
2
2
  import { StructuredTool } from '@langchain/core/tools';
3
- import { ChatCompletionFunction, ChatCompletionResponseMessage, ChatCompletionResponseMessageRoleEnum, ChatPart } from './types';
3
+ import { ChatCompletionFunction, ChatCompletionResponseMessage, ChatCompletionResponseMessageRoleEnum, ChatPart, ChatResponse } from './types';
4
4
  import { Config } from '.';
5
+ import { ModelRequestParams } from 'koishi-plugin-chatluna/llm-core/platform/api';
5
6
  export declare function langchainMessageToGeminiMessage(messages: BaseMessage[], model?: string): Promise<ChatCompletionResponseMessage[]>;
6
7
  export declare function extractSystemMessages(messages: ChatCompletionResponseMessage[]): [ChatCompletionResponseMessage, ChatCompletionResponseMessage[]];
7
8
  export declare function partAsType<T extends ChatPart>(part: ChatPart): T;
@@ -9,4 +10,46 @@ export declare function partAsTypeCheck<T extends ChatPart>(part: ChatPart, chec
9
10
  export declare function formatToolsToGeminiAITools(tools: StructuredTool[], config: Config, model: string): Record<string, any>;
10
11
  export declare function formatToolToGeminiAITool(tool: StructuredTool): ChatCompletionFunction;
11
12
  export declare function messageTypeToGeminiRole(type: MessageType): ChatCompletionResponseMessageRoleEnum;
13
+ export declare function prepareModelConfig(params: ModelRequestParams, pluginConfig: Config): {
14
+ model: string;
15
+ enabledThinking: boolean;
16
+ thinkingBudget: number;
17
+ imageGeneration: boolean;
18
+ };
19
+ export declare function createSafetySettings(model: string): {
20
+ category: string;
21
+ threshold: string;
22
+ }[];
23
+ export declare function createGenerationConfig(params: ModelRequestParams, modelConfig: ReturnType<typeof prepareModelConfig>, pluginConfig: Config): {
24
+ stopSequences: string | string[];
25
+ temperature: number;
26
+ maxOutputTokens: number;
27
+ topP: number;
28
+ responseModalities: string[];
29
+ thinkingConfig: {
30
+ thinkingBudget: number;
31
+ includeThoughts: boolean;
32
+ };
33
+ };
34
+ export declare function createChatGenerationParams(params: ModelRequestParams, modelConfig: ReturnType<typeof prepareModelConfig>, pluginConfig: Config): Promise<{
35
+ contents: ChatCompletionResponseMessage[];
36
+ safetySettings: {
37
+ category: string;
38
+ threshold: string;
39
+ }[];
40
+ generationConfig: {
41
+ stopSequences: string | string[];
42
+ temperature: number;
43
+ maxOutputTokens: number;
44
+ topP: number;
45
+ responseModalities: string[];
46
+ thinkingConfig: {
47
+ thinkingBudget: number;
48
+ includeThoughts: boolean;
49
+ };
50
+ };
51
+ system_instruction: ChatCompletionResponseMessage;
52
+ tools: Record<string, any>;
53
+ }>;
12
54
  export declare function convertDeltaToMessageChunk(delta: Record<string, any>, defaultRole?: ChatCompletionResponseMessageRoleEnum): HumanMessageChunk | AIMessageChunk | SystemMessageChunk | ChatMessageChunk;
55
+ export declare function isChatResponse(response: any): response is ChatResponse;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-chatluna-google-gemini-adapter",
3
3
  "description": "google-gemini adapter for chatluna",
4
- "version": "1.2.19",
4
+ "version": "1.2.21",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "lib/index.mjs",
7
7
  "typings": "lib/index.d.ts",
@@ -62,7 +62,7 @@
62
62
  "adapter"
63
63
  ],
64
64
  "dependencies": {
65
- "@chatluna/v1-shared-adapter": "^1.0.2",
65
+ "@chatluna/v1-shared-adapter": "^1.0.4",
66
66
  "@langchain/core": "^0.3.43",
67
67
  "zod": "^3.25.0-canary.20250211T214501",
68
68
  "zod-to-json-schema": "^3.24.5"
@@ -73,7 +73,7 @@
73
73
  },
74
74
  "peerDependencies": {
75
75
  "koishi": "^4.18.7",
76
- "koishi-plugin-chatluna": "^1.3.0-alpha.13"
76
+ "koishi-plugin-chatluna": "^1.3.0-alpha.16"
77
77
  },
78
78
  "koishi": {
79
79
  "description": {