@redhat-cloud-services/ai-client-common 0.9.3 → 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
CHANGED
|
@@ -28,11 +28,10 @@ All AI clients in this workspace implement the `IAIClient` interface:
|
|
|
28
28
|
```typescript
|
|
29
29
|
import { IAIClient, ClientInitLimitation, IInitErrorResponse } from '@redhat-cloud-services/ai-client-common';
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
declare class IAIClient<AP extends Record<string, unknown> = Record<string, unknown>, TChunk = unknown> {
|
|
32
32
|
constructor(config: IBaseClientConfig<TChunk>);
|
|
33
33
|
|
|
34
34
|
init(): Promise<{
|
|
35
|
-
initialConversationId: string;
|
|
36
35
|
conversations: IConversation[];
|
|
37
36
|
limitation?: ClientInitLimitation;
|
|
38
37
|
error?: IInitErrorResponse;
|
|
@@ -53,8 +52,6 @@ interface IAIClient<AP extends Record<string, unknown> = Record<string, unknown>
|
|
|
53
52
|
getServiceStatus?(options?: IRequestOptions): Promise<unknown>;
|
|
54
53
|
|
|
55
54
|
createNewConversation(): Promise<IConversation>;
|
|
56
|
-
|
|
57
|
-
getInitOptions(): ClientInitOptions;
|
|
58
55
|
}
|
|
59
56
|
```
|
|
60
57
|
|
|
@@ -90,40 +87,25 @@ import { IBaseClientConfig } from '@redhat-cloud-services/ai-client-common';
|
|
|
90
87
|
const config: IBaseClientConfig = {
|
|
91
88
|
baseUrl: 'https://your-ai-service.com',
|
|
92
89
|
fetchFunction: customFetch, // Optional - defaults to native fetch
|
|
93
|
-
defaultStreamingHandler: new CustomStreamingHandler()
|
|
94
|
-
initOptions: {
|
|
95
|
-
initializeNewConversation: false // Optional: See "Lazy Conversation Initialization"
|
|
96
|
-
}
|
|
90
|
+
defaultStreamingHandler: new CustomStreamingHandler() // Optional
|
|
97
91
|
};
|
|
98
92
|
```
|
|
99
93
|
|
|
100
|
-
#### Lazy
|
|
101
|
-
|
|
102
|
-
The `ClientInitOptions` interface provides control over when conversations are created during client initialization.
|
|
103
|
-
|
|
104
|
-
```typescript
|
|
105
|
-
import { ClientInitOptions } from '@redhat-cloud-services/ai-client-common';
|
|
106
|
-
|
|
107
|
-
interface ClientInitOptions {
|
|
108
|
-
/**
|
|
109
|
-
* Controls whether to automatically create a conversation during client initialization
|
|
110
|
-
* @default true
|
|
111
|
-
*/
|
|
112
|
-
initializeNewConversation?: boolean;
|
|
113
|
-
}
|
|
114
|
-
```
|
|
94
|
+
#### Lazy Initialization (Default Behavior)
|
|
115
95
|
|
|
116
|
-
|
|
117
|
-
- Client automatically creates/finds a conversation during `init()`
|
|
118
|
-
- Provides immediate conversation for users to start chatting
|
|
119
|
-
- Suitable for most chat interfaces
|
|
96
|
+
AI clients now use lazy initialization by default. The `init()` method no longer auto-creates conversations - instead, conversations are created automatically when needed (e.g., on first message send).
|
|
120
97
|
|
|
121
|
-
**
|
|
122
|
-
- Client
|
|
123
|
-
-
|
|
124
|
-
-
|
|
98
|
+
**Default Behavior:**
|
|
99
|
+
- Client `init()` only loads existing conversations
|
|
100
|
+
- No conversations are auto-created during initialization
|
|
101
|
+
- Conversations are created automatically on first `sendMessage()` call
|
|
102
|
+
- Provides optimal performance and seamless user experience
|
|
125
103
|
|
|
126
|
-
|
|
104
|
+
**Key Changes:**
|
|
105
|
+
- **Removed**: `ClientInitOptions` interface (no longer needed)
|
|
106
|
+
- **Removed**: `getInitOptions()` method from `IAIClient` interface
|
|
107
|
+
- **Removed**: `initialConversationId` from `init()` return type
|
|
108
|
+
- **New**: Automatic conversation creation on first message send
|
|
127
109
|
|
|
128
110
|
### Client Initialization Responses
|
|
129
111
|
|
|
@@ -159,6 +141,7 @@ import { IStreamChunk } from '@redhat-cloud-services/ai-client-common';
|
|
|
159
141
|
|
|
160
142
|
interface IStreamChunk<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
161
143
|
answer: string;
|
|
144
|
+
messageId: string;
|
|
162
145
|
additionalAttributes: T;
|
|
163
146
|
}
|
|
164
147
|
```
|
|
@@ -269,7 +252,7 @@ interface IMessageResponse<AP = Record<string, unknown>> {
|
|
|
269
252
|
messageId: string;
|
|
270
253
|
answer: string;
|
|
271
254
|
conversationId: string;
|
|
272
|
-
date?:
|
|
255
|
+
date?: Date;
|
|
273
256
|
additionalAttributes?: AP;
|
|
274
257
|
}
|
|
275
258
|
|
|
@@ -278,6 +261,7 @@ interface IConversation {
|
|
|
278
261
|
id: string;
|
|
279
262
|
title: string;
|
|
280
263
|
locked: boolean; // Prevents new messages when true
|
|
264
|
+
createdAt: Date;
|
|
281
265
|
}
|
|
282
266
|
```
|
|
283
267
|
|
package/package.json
CHANGED
|
@@ -5,12 +5,6 @@
|
|
|
5
5
|
export interface IFetchFunction {
|
|
6
6
|
(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
7
7
|
}
|
|
8
|
-
export interface ClientInitOptions {
|
|
9
|
-
/**
|
|
10
|
-
* @default true
|
|
11
|
-
*/
|
|
12
|
-
initializeNewConversation?: boolean;
|
|
13
|
-
}
|
|
14
8
|
/**
|
|
15
9
|
* Base configuration interface for all AI clients
|
|
16
10
|
*/
|
|
@@ -30,7 +24,6 @@ export interface IBaseClientConfig<TChunk = unknown> {
|
|
|
30
24
|
* Individual requests can override this by providing their own streamingHandler
|
|
31
25
|
*/
|
|
32
26
|
defaultStreamingHandler?: IStreamingHandler<TChunk>;
|
|
33
|
-
initOptions?: ClientInitOptions;
|
|
34
27
|
}
|
|
35
28
|
/**
|
|
36
29
|
* Standard request options that can be passed to individual client methods
|
|
@@ -61,12 +54,11 @@ export type ClientInitLimitation = {
|
|
|
61
54
|
declare class IAIClient<AP extends Record<string, unknown> = Record<string, unknown>, TChunk = unknown> {
|
|
62
55
|
constructor(config: IBaseClientConfig<TChunk>);
|
|
63
56
|
/**
|
|
64
|
-
* Initialize the client and return
|
|
57
|
+
* Initialize the client and return existing conversations
|
|
65
58
|
* This method is called once when the client is first used by a state manager
|
|
66
|
-
* @returns Promise that resolves to
|
|
59
|
+
* @returns Promise that resolves to existing conversations and any limitations
|
|
67
60
|
*/
|
|
68
61
|
init(): Promise<{
|
|
69
|
-
initialConversationId: string;
|
|
70
62
|
conversations: IConversation[];
|
|
71
63
|
limitation?: ClientInitLimitation;
|
|
72
64
|
error?: IInitErrorResponse;
|
|
@@ -78,7 +70,7 @@ declare class IAIClient<AP extends Record<string, unknown> = Record<string, unkn
|
|
|
78
70
|
* @param options - Optional configuration for the request
|
|
79
71
|
* @returns Promise that resolves to the AI's response
|
|
80
72
|
*/
|
|
81
|
-
sendMessage<
|
|
73
|
+
sendMessage<T extends Record<string, unknown> = Record<string, unknown>>(conversationId: string, message: string, options?: ISendMessageOptions<T>): Promise<IMessageResponse<AP>>;
|
|
82
74
|
/**
|
|
83
75
|
* Get the default streaming handler for this client
|
|
84
76
|
* All AI clients must implement this method to provide consistent streaming behavior
|
|
@@ -109,11 +101,6 @@ declare class IAIClient<AP extends Record<string, unknown> = Record<string, unkn
|
|
|
109
101
|
* @returns Promise that resolves to the newly created conversation
|
|
110
102
|
*/
|
|
111
103
|
createNewConversation(): Promise<IConversation>;
|
|
112
|
-
/**
|
|
113
|
-
* Get the initial options used to configure the client
|
|
114
|
-
* @returns The initial options used to configure the client
|
|
115
|
-
*/
|
|
116
|
-
getInitOptions(): ClientInitOptions;
|
|
117
104
|
}
|
|
118
105
|
export { IAIClient };
|
|
119
106
|
/**
|
|
@@ -253,6 +240,7 @@ export interface IErrorMessageResponse {
|
|
|
253
240
|
export interface IStreamChunk<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
254
241
|
answer: string;
|
|
255
242
|
messageId: string;
|
|
243
|
+
conversationId: string;
|
|
256
244
|
additionalAttributes: T;
|
|
257
245
|
}
|
|
258
246
|
export type AfterChunkCallback<T extends Record<string, unknown> = Record<string, unknown>> = (chunk: IStreamChunk<T>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-client-common.d.ts","sourceRoot":"","sources":["../../../../../packages/ai-client-common/src/lib/ai-client-common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACnE;AAED
|
|
1
|
+
{"version":3,"file":"ai-client-common.d.ts","sourceRoot":"","sources":["../../../../../packages/ai-client-common/src/lib/ai-client-common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-client-common.js","sourceRoot":"","sources":["../../../../../packages/ai-client-common/src/lib/ai-client-common.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ai-client-common.js","sourceRoot":"","sources":["../../../../../packages/ai-client-common/src/lib/ai-client-common.ts"],"names":[],"mappings":";;;AAmDA,kDASC;AATD,SAAgB,mBAAmB,CAAC,GAAY;IAC9C,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,SAAS,IAAI,GAAG;QAChB,OAAQ,GAA0B,CAAC,OAAO,KAAK,QAAQ;QACvD,QAAQ,IAAI,GAAG;QACf,OAAQ,GAA0B,CAAC,MAAM,KAAK,QAAQ,CACvD,CAAC;AACJ,CAAC;AAmFD;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IACtC,YACS,MAAc,EACd,UAAkB,EACzB,OAAe,EACR,IAAc;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QALR,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAElB,SAAI,GAAJ,IAAI,CAAU;QAGrB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAVD,sCAUC;AAWD,MAAa,uBAAwB,SAAQ,aAAa;IACxD,YAAmB,gBAAoC;QACrD,KAAK,CACH,GAAG,EACH,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,CACjB,CAAC;QANe,qBAAgB,GAAhB,gBAAgB,CAAoB;QAOrD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAVD,0DAUC"}
|