Add errors handling
This commit is contained in:
parent
52060c1170
commit
2a711a6dea
|
|
@ -201,6 +201,9 @@ export const ChatPanel = ({ visible }: { visible: boolean }) => {
|
|||
if (abortControllerRef.current?.signal.aborted) {
|
||||
break;
|
||||
}
|
||||
if ('error' in chunk) {
|
||||
throw new Error(chunk.error);
|
||||
}
|
||||
const delta = chunk.choices[0]?.delta;
|
||||
|
||||
if (delta?.tool_calls) {
|
||||
|
|
|
|||
|
|
@ -114,6 +114,10 @@ namespace LLM {
|
|||
choices: ChatCompletionChunkChoice[];
|
||||
}
|
||||
|
||||
export interface ChatCompletionError {
|
||||
error: string;
|
||||
}
|
||||
|
||||
export interface ModelInfo {
|
||||
id: string;
|
||||
object: 'model';
|
||||
|
|
@ -246,19 +250,22 @@ namespace LLM {
|
|||
return request<ModelsResponse>(connection, '/v1/models');
|
||||
}
|
||||
|
||||
export async function countTokens(connection: Connection, body: CountTokensRequest): Promise<CountTokensResponse> {
|
||||
export async function countTokens(connection: Connection, body: CountTokensRequest) {
|
||||
return request<CountTokensResponse>(connection, '/v1/responses/input_tokens', 'POST', body);
|
||||
}
|
||||
|
||||
export async function* generateStream(connection: Connection, config: ChatCompletionRequest): AsyncGenerator<ChatCompletionChunk> {
|
||||
yield* streamRequest<ChatCompletionChunk>(connection, '/v1/chat/completions', 'POST', {
|
||||
export async function* generateStream(connection: Connection, config: ChatCompletionRequest) {
|
||||
yield* streamRequest<ChatCompletionChunk | ChatCompletionError>(connection, '/v1/chat/completions', 'POST', {
|
||||
...config,
|
||||
stream: true,
|
||||
});
|
||||
}
|
||||
|
||||
export async function generate(connection: Connection, config: ChatCompletionRequest): Promise<ChatCompletionResponse> {
|
||||
return request<ChatCompletionResponse>(connection, '/v1/chat/completions', 'POST', config);
|
||||
export async function generate(connection: Connection, config: ChatCompletionRequest) {
|
||||
return request<ChatCompletionResponse| ChatCompletionError>(connection, '/v1/chat/completions', 'POST', {
|
||||
...config,
|
||||
stream: false,
|
||||
});
|
||||
}
|
||||
|
||||
const SUMMARIZATION_PROMPT = `Summarize the following text concisely while preserving key information and meaning. {level}
|
||||
|
|
@ -291,6 +298,10 @@ Provide a clear and coherent summary:`;
|
|||
max_tokens: 500,
|
||||
});
|
||||
|
||||
if ('error' in response) {
|
||||
throw new Error(response.error);
|
||||
}
|
||||
|
||||
return response.choices[0]?.message.content ?? '';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue