52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { fetchApi } from "@/lib/server-api-util";
|
|
import { Message } from "@/types/ask";
|
|
import { useCallback } from "react";
|
|
|
|
// 实现一个函数,从两个数组中轮流插入新数组
|
|
export const mergeArrays = (arr1: any[], arr2: any[]) => {
|
|
const result: any[] = [];
|
|
const maxLength = Math.max(arr1.length, arr2.length);
|
|
for (let i = 0; i < maxLength; i++) {
|
|
if (i < arr1.length) result.push(arr1[i]);
|
|
if (i < arr2.length) result.push(arr2[i]);
|
|
}
|
|
return result;
|
|
};
|
|
|
|
|
|
// 创建新对话并获取消息
|
|
export const createNewConversation = useCallback(async (user_text: string) => {
|
|
const data = await fetchApi<string>("/chat/new", {
|
|
method: "POST",
|
|
});
|
|
return data
|
|
}, []);
|
|
|
|
// 获取对话信息
|
|
export const getConversation = async ({
|
|
session_id,
|
|
user_text,
|
|
material_ids
|
|
}: {
|
|
session_id: string,
|
|
user_text: string,
|
|
material_ids: string[]
|
|
}): Promise<Message | undefined> => {
|
|
// 获取对话信息必须要有对话id
|
|
if (!session_id) return undefined;
|
|
|
|
try {
|
|
const response = await fetchApi<Message>(`/chat`, {
|
|
method: "POST",
|
|
body: JSON.stringify({
|
|
session_id,
|
|
user_text,
|
|
material_ids
|
|
})
|
|
});
|
|
return response;
|
|
} catch (error) {
|
|
// console.error('Error in getConversation:', error);
|
|
return undefined;
|
|
}
|
|
}; |