@redhat-cloud-services/ai-client-common 0.3.3 → 0.4.1
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
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# @redhat-cloud-services/ai-client-common
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
Common interfaces and utilities for AI client packages in the Red Hat Cloud Services ecosystem.
|
|
5
4
|
|
|
5
|
+
|
|
6
6
|
## Features
|
|
7
7
|
|
|
8
8
|
- **Standardized AI Client Interface** - Common `IAIClient` interface for all AI services
|
|
9
|
+
- **Conversation Management** - Standard conversation interface with locking support
|
|
9
10
|
- **Dependency Injection** - Interfaces for custom fetch implementations and streaming handlers
|
|
10
11
|
- **TypeScript Support** - Comprehensive type definitions for AI client development
|
|
11
12
|
- **Error Handling** - Base error classes with validation error support
|
|
@@ -27,17 +28,21 @@ All AI clients in this workspace implement the `IAIClient` interface:
|
|
|
27
28
|
```typescript
|
|
28
29
|
import { IAIClient } from '@redhat-cloud-services/ai-client-common';
|
|
29
30
|
|
|
30
|
-
interface IAIClient {
|
|
31
|
-
init(): Promise<
|
|
31
|
+
interface IAIClient<AP extends Record<string, unknown> = Record<string, unknown>> {
|
|
32
|
+
init(): Promise<{
|
|
33
|
+
initialConversationId: string;
|
|
34
|
+
conversations: IConversation[];
|
|
35
|
+
}>;
|
|
32
36
|
sendMessage<TChunk = unknown>(
|
|
33
37
|
conversationId: string,
|
|
34
38
|
message: string,
|
|
35
39
|
options?: ISendMessageOptions<TChunk>
|
|
36
|
-
): Promise<TChunk | IMessageResponse | void>;
|
|
40
|
+
): Promise<TChunk | IMessageResponse<AP> | void>;
|
|
37
41
|
getDefaultStreamingHandler?<TChunk = unknown>(): IStreamingHandler<TChunk> | undefined;
|
|
38
|
-
getConversationHistory(conversationId: string, options?: IRequestOptions): Promise<IConversationHistoryResponse
|
|
42
|
+
getConversationHistory(conversationId: string, options?: IRequestOptions): Promise<IConversationHistoryResponse<AP>>;
|
|
39
43
|
healthCheck(options?: IRequestOptions): Promise<unknown>;
|
|
40
44
|
getServiceStatus?(options?: IRequestOptions): Promise<unknown>;
|
|
45
|
+
createNewConversation(): Promise<IConversation>;
|
|
41
46
|
}
|
|
42
47
|
```
|
|
43
48
|
|
|
@@ -165,7 +170,7 @@ import {
|
|
|
165
170
|
IRequestOptions,
|
|
166
171
|
IMessageResponse,
|
|
167
172
|
IConversationHistoryResponse,
|
|
168
|
-
|
|
173
|
+
IConversation
|
|
169
174
|
} from '@redhat-cloud-services/ai-client-common';
|
|
170
175
|
|
|
171
176
|
// Standard request options
|
|
@@ -175,12 +180,19 @@ const options: IRequestOptions = {
|
|
|
175
180
|
};
|
|
176
181
|
|
|
177
182
|
// Message response structure
|
|
178
|
-
interface IMessageResponse {
|
|
183
|
+
interface IMessageResponse<AP = Record<string, unknown>> {
|
|
179
184
|
messageId: string;
|
|
180
185
|
answer: string;
|
|
181
186
|
conversationId: string;
|
|
182
187
|
createdAt?: string;
|
|
183
|
-
|
|
188
|
+
additionalAttributes?: AP;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Conversation structure
|
|
192
|
+
interface IConversation {
|
|
193
|
+
id: string;
|
|
194
|
+
title: string;
|
|
195
|
+
locked: boolean; // Prevents new messages when true
|
|
184
196
|
}
|
|
185
197
|
```
|
|
186
198
|
|
package/package.json
CHANGED
|
@@ -48,7 +48,10 @@ export interface IAIClient<AP extends Record<string, unknown> = Record<string, u
|
|
|
48
48
|
* This method is called once when the client is first used by a state manager
|
|
49
49
|
* @returns Promise that resolves to the initial conversation ID
|
|
50
50
|
*/
|
|
51
|
-
init(): Promise<
|
|
51
|
+
init(): Promise<{
|
|
52
|
+
initialConversationId: string;
|
|
53
|
+
conversations: IConversation[];
|
|
54
|
+
}>;
|
|
52
55
|
/**
|
|
53
56
|
* Send a message to the AI service
|
|
54
57
|
* @param conversationId - The conversation ID to send the message to
|
|
@@ -81,6 +84,11 @@ export interface IAIClient<AP extends Record<string, unknown> = Record<string, u
|
|
|
81
84
|
* @returns Promise that resolves to service status information
|
|
82
85
|
*/
|
|
83
86
|
getServiceStatus?(options?: IRequestOptions): Promise<unknown>;
|
|
87
|
+
/**
|
|
88
|
+
* Create a new conversation
|
|
89
|
+
* @returns Promise that resolves to the newly created conversation
|
|
90
|
+
*/
|
|
91
|
+
createNewConversation(): Promise<IConversation>;
|
|
84
92
|
}
|
|
85
93
|
/**
|
|
86
94
|
* Base error class for all AI client errors
|
|
@@ -195,43 +203,22 @@ export interface IAnswerSource {
|
|
|
195
203
|
*/
|
|
196
204
|
snippet?: string | null;
|
|
197
205
|
}
|
|
198
|
-
|
|
199
|
-
* Single message in conversation history
|
|
200
|
-
*/
|
|
201
|
-
export interface IConversationHistoryMessage<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
202
|
-
/**
|
|
203
|
-
* Unique identifier for the message
|
|
204
|
-
*/
|
|
206
|
+
export interface IConversationMessage<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
205
207
|
message_id: string;
|
|
206
|
-
/**
|
|
207
|
-
* When the message was received
|
|
208
|
-
*/
|
|
209
|
-
received_at: string;
|
|
210
|
-
/**
|
|
211
|
-
* The user's input/question
|
|
212
|
-
*/
|
|
213
|
-
input: string;
|
|
214
|
-
/**
|
|
215
|
-
* When the AI response was created
|
|
216
|
-
*/
|
|
217
|
-
created_at: string;
|
|
218
|
-
/**
|
|
219
|
-
* The AI's answer
|
|
220
|
-
*/
|
|
221
208
|
answer: string;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
*/
|
|
225
|
-
sources: IAnswerSource[];
|
|
226
|
-
/**
|
|
227
|
-
* Additional data associated with the message
|
|
228
|
-
*/
|
|
209
|
+
role: 'user' | 'bot';
|
|
210
|
+
input: string;
|
|
229
211
|
additionalData?: T;
|
|
230
212
|
}
|
|
231
213
|
/**
|
|
232
214
|
* Response type for conversation history requests
|
|
233
215
|
*/
|
|
234
|
-
export type IConversationHistoryResponse<T extends Record<string, unknown> = Record<string, unknown>> =
|
|
216
|
+
export type IConversationHistoryResponse<T extends Record<string, unknown> = Record<string, unknown>> = IConversationMessage<T>[] | null;
|
|
217
|
+
export interface IConversation {
|
|
218
|
+
id: string;
|
|
219
|
+
title: string;
|
|
220
|
+
locked: boolean;
|
|
221
|
+
}
|
|
235
222
|
export interface IErrorMessageResponse {
|
|
236
223
|
error: any;
|
|
237
224
|
}
|
|
@@ -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;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,MAAM,GAAG,OAAO;IACjD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,EAAE,cAAc,CAAC;IAE9B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrF;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
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":";;;AAgHA;;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,CAAC,GAAG,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,CAAC;QAD7D,qBAAgB,GAAhB,gBAAgB,CAAoB;QAErD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AALD,0DAKC"}
|