DB-GPT/web/hooks/use-summary.ts
Dreammy23 471689ba20
feat(web): Unified frontend code style (#1923)
Co-authored-by: Fangyin Cheng <staneyffer@gmail.com>
Co-authored-by: 谨欣 <echo.cmy@antgroup.com>
Co-authored-by: 严志勇 <yanzhiyong@tiansuixiansheng.com>
Co-authored-by: yanzhiyong <932374019@qq.com>
2024-08-30 14:03:06 +08:00

39 lines
1.2 KiB
TypeScript

import { ChatContext } from '@/app/chat-context';
import { apiInterceptors, getChatHistory } from '@/client/api';
import { ChatHistoryResponse } from '@/types/chat';
import { useCallback, useContext } from 'react';
import useChat from './use-chat';
const useSummary = () => {
const { history, setHistory, chatId, model, docId } = useContext(ChatContext);
const { chat } = useChat({ queryAgentURL: '/knowledge/document/summary' });
const summary = useCallback(
async (curDocId?: number) => {
const [, res] = await apiInterceptors(getChatHistory(chatId));
const tempHistory: ChatHistoryResponse = [
...res!,
{ role: 'human', context: '', model_name: model, order: 0, time_stamp: 0 },
{ role: 'view', context: '', model_name: model, order: 0, time_stamp: 0, retry: true },
];
const index = tempHistory.length - 1;
setHistory([...tempHistory]);
await chat({
data: {
doc_id: curDocId || docId,
model_name: model,
},
chatId,
onMessage: message => {
tempHistory[index].context = message;
setHistory([...tempHistory]);
},
});
},
[history, model, docId, chatId],
);
return summary;
};
export default useSummary;