|
@@ -1,22 +1,28 @@
|
|
|
import axios from 'axios';
|
|
|
|
|
|
const BASE_URL = 'http://127.0.0.1:5000';
|
|
|
-const BASE_URL_2='http://127.0.0.1:3001';
|
|
|
-const BASE_URL_3='http://127.0.0.1:8080';
|
|
|
-// 调用 Flask 进行图像识别
|
|
|
-export const predict = async (data: any) => {
|
|
|
+// 登录请求方法
|
|
|
+export const login = async (formData: { username: string; password: string }) => {
|
|
|
try {
|
|
|
- const response = await axios.post(`${BASE_URL}/predict`, { data });
|
|
|
- return response.data;
|
|
|
+ const response = await axios.post(`${BASE_URL}/api/login`, formData);
|
|
|
+ // 检查后端返回的响应结果
|
|
|
+ if (response.data.success) {
|
|
|
+ console.log('登录成功');
|
|
|
+ return response.data;
|
|
|
+ } else {
|
|
|
+ console.error('登录失败:', response.data.message);
|
|
|
+ throw new Error(response.data.message || '登录失败,请检查账号和密码!');
|
|
|
+ }
|
|
|
} catch (error) {
|
|
|
- console.error('图像预测时发生错误:', error);
|
|
|
+ console.error('登录请求时发生错误:', error);
|
|
|
throw error;
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
// 调用 Flask 进行RAG增强回答
|
|
|
export const queryRAGKnowledge = async (query: string) => {
|
|
|
try {
|
|
|
- const response = await axios.post(`${BASE_URL_2}/query`, { query });
|
|
|
+ const response = await axios.post(`${BASE_URL}/query`, { query });
|
|
|
// 提取结果中的 content 字段
|
|
|
const contents = response.data.results.map((result: { sentence: any; }) => result.sentence);
|
|
|
return contents; // 返回内容列表
|
|
@@ -26,20 +32,94 @@ export const queryRAGKnowledge = async (query: string) => {
|
|
|
throw error;
|
|
|
}
|
|
|
};
|
|
|
-// 登录请求方法
|
|
|
-export const login = async (formData: { username: string; password: string }) => {
|
|
|
+
|
|
|
+// 保存用户的 AI 问答记录
|
|
|
+export const saveAIChatRecord = async (record: {
|
|
|
+ nickname: string;
|
|
|
+ chat_time: string;
|
|
|
+ chat_title: string;
|
|
|
+ chat_content: string; // Markdown 格式
|
|
|
+}) => {
|
|
|
try {
|
|
|
- const response = await axios.post(`${BASE_URL_3}/api/login`, formData);
|
|
|
- // 检查后端返回的响应结果
|
|
|
- if (response.data.success) {
|
|
|
- console.log('登录成功');
|
|
|
+ const response = await axios.post(`${BASE_URL}/save_chat_record`, record);
|
|
|
+ if (response.data.status === 'success') {
|
|
|
+ console.log('AI 问答记录保存成功:', response.data.message);
|
|
|
return response.data;
|
|
|
} else {
|
|
|
- console.error('登录失败:', response.data.message);
|
|
|
- throw new Error(response.data.message || '登录失败,请检查账号和密码!');
|
|
|
+ console.error('AI 问答记录保存失败:', response.data.message);
|
|
|
+ throw new Error(response.data.message || 'AI 问答记录保存失败!');
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- console.error('登录请求时发生错误:', error);
|
|
|
+ console.error('保存 AI 问答记录时发生错误:', error);
|
|
|
throw error;
|
|
|
}
|
|
|
+};
|
|
|
+
|
|
|
+// 获取 AI 问答记录
|
|
|
+export const getAIChatRecords = async () => {
|
|
|
+ try {
|
|
|
+ const response = await axios.get(`${BASE_URL}/get_chat_records`);
|
|
|
+ if (response.data.status === 'success') {
|
|
|
+ console.log('获取 AI 问答记录成功:', response.data.records);
|
|
|
+ return response.data.records;
|
|
|
+ } else {
|
|
|
+ console.error('获取 AI 问答记录失败:', response.data.message);
|
|
|
+ throw new Error(response.data.message || '获取 AI 问答记录失败!');
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取 AI 问答记录时发生错误:', error);
|
|
|
+ throw error;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 调用 Flask 进行图像识别
|
|
|
+export const predict = async (data: any) => {
|
|
|
+ try {
|
|
|
+ const response = await axios.post(`${BASE_URL}/predict`, { data });
|
|
|
+ return response.data;
|
|
|
+ } catch (error) {
|
|
|
+ console.error('图像预测时发生错误:', error);
|
|
|
+ throw error;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 保存用户的陶瓷识别记录
|
|
|
+export const saveCeramicDetectionRecord = async (record: {
|
|
|
+ nickname: string;
|
|
|
+ detection_time: string;
|
|
|
+ result: string;
|
|
|
+ confidence: string;
|
|
|
+}) => {
|
|
|
+ try {
|
|
|
+ const response = await axios.post(`${BASE_URL}/save_detection`, record);
|
|
|
+ if (response.data.status === 'success') {
|
|
|
+ console.log('陶瓷识别记录保存成功:', response.data.message);
|
|
|
+ return response.data;
|
|
|
+ } else {
|
|
|
+ console.error('陶瓷识别记录保存失败:', response.data.message);
|
|
|
+ throw new Error(response.data.message || '陶瓷识别记录保存失败!');
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('保存陶瓷识别记录时发生错误:', error);
|
|
|
+ throw error;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 获取陶瓷识别记录
|
|
|
+export const getCeramicDetectionRecords = async (username: string) => {
|
|
|
+ try {
|
|
|
+ const response = await axios.get(`${BASE_URL}/get_detection_records`, {
|
|
|
+ params: { nickname: username }, // 传递用户名参数
|
|
|
+ });
|
|
|
+ if (response.data.status === 'success') {
|
|
|
+ console.log('获取陶瓷识别记录成功:', response.data.records);
|
|
|
+ return response.data.data || []; // 确保返回数组
|
|
|
+ } else {
|
|
|
+ console.error('获取陶瓷识别记录失败:', response.data.message);
|
|
|
+ return []; // 返回空数组
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取陶瓷识别记录时发生错误:', error);
|
|
|
+ return []; // 返回空数组以防止前端崩溃
|
|
|
+ }
|
|
|
};
|