mirror of
https://github.com/docmost/docmost.git
synced 2026-05-07 06:23:06 +08:00
9fb16bc842
* WIP * AI module - init * WIP * sync * WIP * refactor naming * new columns * sync * sync * fix search bug * stream response * WIP * feat embeddings sync * refine * Add workspaceId to page events * refine * WIP * add translation string * sync * reset ai answer on query change * hide AI search in cloud * capture streaming error * sync
45 lines
989 B
TypeScript
45 lines
989 B
TypeScript
import {
|
|
useMutation,
|
|
UseMutationResult,
|
|
useQuery,
|
|
UseQueryResult,
|
|
} from "@tanstack/react-query";
|
|
import {
|
|
generateAiContent,
|
|
generateAiContentStream,
|
|
} from "@/ee/ai/services/ai-service.ts";
|
|
import {
|
|
AiConfigResponse,
|
|
AiContentResponse,
|
|
AiGenerateDto,
|
|
AiStreamChunk,
|
|
AiStreamError,
|
|
} from "@/ee/ai/types/ai.types.ts";
|
|
|
|
export function useAiGenerateMutation(): UseMutationResult<
|
|
AiContentResponse,
|
|
Error,
|
|
AiGenerateDto
|
|
> {
|
|
return useMutation({
|
|
mutationFn: (data: AiGenerateDto) => generateAiContent(data),
|
|
});
|
|
}
|
|
|
|
interface StreamCallbacks {
|
|
onChunk: (chunk: AiStreamChunk) => void;
|
|
onError?: (error: AiStreamError) => void;
|
|
onComplete?: () => void;
|
|
}
|
|
|
|
export function useAiGenerateStreamMutation(): UseMutationResult<
|
|
AbortController,
|
|
Error,
|
|
AiGenerateDto & StreamCallbacks
|
|
> {
|
|
return useMutation({
|
|
mutationFn: ({ onChunk, onError, onComplete, ...data }) =>
|
|
generateAiContentStream(data, onChunk, onError, onComplete),
|
|
});
|
|
}
|