yangyin
2024-11-05 f15c8fa05e3e4eae8ef093ba6ba827ad74e38fec
src/api/ai/chat.ts
@@ -1,45 +1,47 @@
import request from '/@/utils/request';
import { toFormData } from '/@/utils/util';
import request, { streamReq } from '/@/utils/request';
const GET_SECTION_SAMPLE_API = '/scene/get_scene_group_sample';
const GET_SECTION_A_LIST_API = '/scene/get_scene_group_tree';
export const Get_LOGIN_SMS = '/login_sms';
export const NO_AUTH_API_LIST = [GET_SECTION_SAMPLE_API, GET_SECTION_A_LIST_API, Get_LOGIN_SMS];
//#region ====================== knowledge ======================
export interface KnowledgeRes {
    json_ok:     boolean;
    question:    string;
    answer_type: string;
    knowledge:   KnowledgeData[];
   json_ok: boolean;
   question: string;
   answer_type: string;
   knowledge: KnowledgeData[];
}
export interface KnowledgeData {
    answer:   string;
    contexts: Context[];
   answer: string;
   contexts: Context[];
}
export interface Context {
    page_content: string;
    metadata:     Metadata;
   page_content: string;
   metadata: Metadata;
}
export interface Metadata {
    Title?: string;
   Title?: string;
}
//#endregion
//#region ====================== RecordSet ======================
export interface RecordSetRes {
    json_ok:     boolean;
    question:    string;
    answer_type: string;
    values:      RecordSetValues;
   json_ok: boolean;
   question: string;
   answer_type: string;
   values: RecordSetValues;
}
export interface RecordSetValues {
    names:  string[];
    values: Array<Array<any>>;
    type:   string;
    title:  string;
   names: string[];
   values: Array<Array<any>>;
   type: string;
   title: string;
}
//#endregion
@@ -67,13 +69,12 @@
 * @summary description
 */
export const QuestionAi = async (params, req: any = request) => {
   const formData = toFormData(params);
   return req({
      url: '/chat/question',
      method: 'POST',
      data: formData,
      data: params,
      headers: {
         'Content-Type': 'multipart/form-data',
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
@@ -92,58 +93,371 @@
 * @summary description
 */
export const SetLLM = async (params, req: any = request) => {
   const formData = toFormData(params);
   return req({
      url: '/llm/set_llm',
      method: 'POST',
      data: formData,
      data: params,
      headers: {
         'Content-Type': 'multipart/form-data',
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 * @summary  获取主场景
 */
export const getSectionList = async (req: any = request) => {
   return req({
      url: GET_SECTION_A_LIST_API,
      method: 'POST',
   });
};
/**
 * @summary  根据主应用场景获取次应用场景
 */
export const getSectionByIdList = async (params, req: any = request) => {
   return req({
      url: '/section/get_section_b_list',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 * @summary  获取全部次场景
 */
export const getSectionByAllList = async (req: any = request) => {
   return req({
      url: '/section/get_section_list',
      method: 'POST',
   });
};
/**
 * @summary description
 */
export const CreateHistoryGroup = async (params, req:any = request) => {
  return req({
   url: "/history/create_history_group",
   method: "POST",
   data: params,
   headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
   },
  });
export const CreateHistoryGroup = async (params, req: any = request) => {
   return req({
      url: '/history/create_history_group',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const GetHistoryGroups = async (params, req:any = request) => {
export const GetHistoryGroups = async (req: any = request) => {
   return req({
     url: "/history/get_history_groups",
     method: "POST",
     data: params,
     headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
     },
      url: '/history/get_history_groups',
      method: 'POST',
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
  };
};
export const QueryHistoryGroup = async (params, req:any = request) => {
export const DeleteHistoryGroups = async (params, req: any = request) => {
   return req({
     url: "/history/query_history_detail",
     method: "POST",
     data: params,
     headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
     },
      url: '/history/delete_history_group',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
  };
};
export const QueryHistoryGroup = async (params, req: any = request) => {
   return req({
      url: '/history/query_history_detail',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
// 获取AI对话测试例子列表
export const getSelectSample = async (params, req: any = request) => {
   return req({
      url: GET_SECTION_SAMPLE_API,
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const GetHistoryAnswer = async (params, req: any = request) => {
   return req({
      url: '/history/get_history_answer',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const QueryHistoryDetail = async (params, req: any = request) => {
   return req({
      url: '/history/query_history_detail',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
//系统通知
export const systemNotifyList = async (req: any = request) => {
   return req({
      url: '/system/get_sys_notify_list',
      method: 'POST',
   });
};
//获取大模型列表
export const getBigModelList = async (req: any = request) => {
   return req({
      url: '/llm/llm/get_llm_list',
      method: 'POST',
   });
};
/**
 * @summary 设置历史对话状态(未设置:NULL,顶1,踩0
 */
export const SetHistoryAnswerState = async (params, req: any = request) => {
   return req({
      url: '/history/set_history_answer_state',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 * @summary AI大模型对话
 */
export const QuestionWorkAi = async (params, req: any = request) => {
   return req({
      url: '/chat/question1',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 * @description 流式大模型对话
 * @param {FormData} params
 **/
export const questionStreamByPost = (params, callback: (chunkRes) => void) =>
   streamReq(
      {
         url: `/chat/question_stream`,
         method: 'post',
         params: {},
         data: params,
         headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
         },
      },
      callback
   );
/**
 * @summary AI大模型对话
 */
export const getUserTemplateList = async (req: any = request) => {
   return req({
      url: '/system/get_user_template_list',
      method: 'POST',
   });
};
/**
 * 查询问题进度
 * @param params
 * @param req
 * @returns
 */
export const getQuestionProcess = async (params, req: any = request) => {
   return req({
      url: 'chat/get_question_process',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const setHistoryGroupTitle = async (params, req: any = request) => {
   return req({
      url: 'history/set_history_group_title',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const reportHistoryProblem = async (params, req: any = request) => {
   return req({
      url: 'history/report_history_problem',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const querySimilarityHistory = async (params, req: any = request) => {
   return req({
      url: 'history/query_similarity_history',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const getMetricsNames = async (req: any = request) => {
   return req({
      url: 'chat/get_metrics_names',
      method: 'POST',
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const filterQuery = async (params, req: any = request) => {
   return req({
      url: 'chat/filter_query',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
export const queryScadaTimeValues = async (params, req: any = request) => {
   return req({
      url: 'data/query_scada_time_values',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/** @description 关联查询 */
export const extCallQuery = async (params, req: any = request) => {
   return req({
      url: 'chat/ext_call_query',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 * 曲线查询
 * @param params
 * @param req
 * @returns
 */
export const curveQuery = (params, req: any = request) => {
   return req({
      url: 'chat/chat_supervisor_json',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 * 添加用户自定义例子
 * @param params
 * @param req
 * @returns
 */
export const addUserSample = (params, req: any = request) => {
   return req({
      url: 'chat/add_user_sample',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 *
查询用户自定义例子
 * @param params
 * @param req
 * @returns
 */
export const listUserSample = (params, req: any = request) => {
   return req({
      url: 'chat/list_user_sample',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 *
修改用户自定义例子
 * @param params
 * @param req
 * @returns
 */
export const updateUserSample = (params, req: any = request) => {
   return req({
      url: 'chat/update_user_sample',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};
/**
 *
删除用户自定义例子
 * @param params
 * @param req
 * @returns
 */
export const deleteUserSample = (params, req: any = request) => {
   return req({
      url: 'chat/delete_user_sample',
      method: 'POST',
      data: params,
      headers: {
         'Content-Type': 'application/x-www-form-urlencoded',
      },
   });
};