knowledge.ts 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import { bluebookAiAgent } from "@/xiaolanbenlib/api/index";
  2. import Taro from "@tarojs/taro";
  3. import { getHeaders } from "@/xiaolanbenlib/module/axios.js";
  4. import JsonChunkParser from "@/utils/jsonChunkParser";
  5. import request from "@/xiaolanbenlib/module/axios.js";
  6. import type { TKnowledgeItem, TQAListItem, TKnowledgeStreamResponseData, TKnowledgeDetail } from "@/types/knowledge";
  7. import { getSimpleHeader } from "@/xiaolanbenlib/module/axios.js";
  8. import { isSuccess } from "@/utils";
  9. import { EKnowlegeTypes } from "@/consts/enum";
  10. // 上传知识库文件
  11. export const uploadKnowledgeFile = (data:
  12. {
  13. tmpPath: string,
  14. fileName: string
  15. }
  16. ):Promise<boolean> => {
  17. return new Promise((resolve, reject)=> {
  18. Taro.uploadFile({
  19. url: `${bluebookAiAgent}api/v1/my/knowledge/upload`,
  20. filePath: data.tmpPath,
  21. name: data.fileName,
  22. formData: {
  23. file: data.fileName,
  24. },
  25. header: {
  26. ...getSimpleHeader(),
  27. },
  28. success(res) {
  29. console.log(res)
  30. resolve(isSuccess(res.statusCode))
  31. },
  32. fail(err) {
  33. console.log(err);
  34. reject(false);
  35. },
  36. });
  37. })
  38. }
  39. //我的知识库--列表
  40. export type TKnowledgeListResponse = {
  41. "data": TKnowledgeItem[],
  42. "nextId": string,
  43. "totalCount": number
  44. }
  45. export const getKnowledgeList = ({startId, pageSize = 1, types = []}: {
  46. startId?: string;
  47. types?: EKnowlegeTypes[]
  48. pageSize: number;
  49. }) => {
  50. return request.get<TKnowledgeListResponse>(
  51. `${bluebookAiAgent}api/v1/my/knowledge/list`,
  52. { params: {startId, pageSize, types: types.join(',')} }
  53. );
  54. };
  55. // 将指定的1个知识库共享至多个企业
  56. export const shareToEnts = (knowledgeId: string|number, entIds: (string|number)[]) => {
  57. return request.post<{
  58. failEntIds: number[], // (Array[integer], optional): 失败的entId列表 ,
  59. successEntIds: number[] // 成功分享的entId列表
  60. }>(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}/share2Ents?entIds=${entIds.join(',')}`)
  61. }
  62. // 共享我的知识库至企业
  63. export const shareToEnt = (data:
  64. {
  65. "knowledgeIds": (number|string)[],
  66. "toEntId": string|number
  67. }
  68. ) => {
  69. return request.post(`${bluebookAiAgent}api/v1/my/knowledge/shareToEnt`, data)
  70. }
  71. // 获取指定的知识库已共享的企业列表,响应体为{'entIds':[]}
  72. export const getSharedEnts = (knowledgeId: string|number) => {
  73. return request.get<{entIds: string[]}>(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}/sharedEnts`)
  74. }
  75. // 我的知识库--信息流
  76. export type TKnowLedgeStreamResponse = {
  77. "data": TKnowledgeStreamResponseData[],
  78. "nextId": string,
  79. "totalCount": number
  80. }
  81. export const getMyKnowledgeStream = (data: {startId?: string, pageSize:number} ) => {
  82. return request.get<TKnowLedgeStreamResponse>(`${bluebookAiAgent}api/v1/my/knowledge/stream`, {params: data})
  83. }
  84. // 获取指定知识库项的详情信息
  85. export const getMyKnowledgeDetail = (knowledgeId: number) => {
  86. return request.get<TKnowledgeDetail>(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}`)
  87. }
  88. // 是否启用文档精准问答
  89. export const updateExactAnswer = (knowledgeId: number, enable: boolean) => {
  90. return request.put(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}/exactAnswer?enable=${enable}`)
  91. }
  92. // 删除知识库 信息流记录;流删除会同步删除相关的记录项
  93. export const deleteMyKnowledgeStream = (streamId: string|number) => {
  94. return request.delete(`${bluebookAiAgent}api/v1/my/knowledge/stream/${streamId}`,)
  95. }
  96. // 删除个人知识库 记录项
  97. export const deleteMyKnowledge = (knowledgeId: string|number) => {
  98. return request.delete(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}`,)
  99. }
  100. // 删除指定知识库的 QA 项
  101. export const deleteKnowledgeQa = (knowledgeId: string|number, qaId: number|string) => {
  102. return request.delete(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}/${qaId}`,)
  103. }
  104. export const getKnowledgeQa = (knowledgeId: number|string, qaId: number|string) => {
  105. return request.get<TQAListItem>(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}/${qaId}`,)
  106. }
  107. // 更新指定的知识库 QA 项
  108. export const updateKnowledgeQa = (knowledgeId: number|string, qaId: number|string, qa: TQAListItem&{qaId: string|number}) => {
  109. return request.put(`${bluebookAiAgent}api/v1/my/knowledge/${knowledgeId}/${qaId}`, qa)
  110. }
  111. // 企业知识库--列表
  112. export const getEntKnowledgeList = ({startId, entId, pageSize, types = []}: {
  113. entId: string|number;
  114. startId?: string;
  115. types?: EKnowlegeTypes[]
  116. pageSize: number;
  117. }) => {
  118. return request.get<TKnowledgeListResponse>(
  119. `${bluebookAiAgent}api/v1/ent/knowledge/list`,
  120. { params: {startId, entId, pageSize, types: types.join(',')}}
  121. );
  122. };
  123. // 获取指定知识库项的详情信息
  124. export const getEntKnowledgeDetail = (knowledgeId: string|number, entId: string|number) => {
  125. return request.get(`${bluebookAiAgent}api/v1/ent/knowledge/${knowledgeId}?entId=${entId}`)
  126. }
  127. // 企业知识库--信息流
  128. export const getEntKnowledgeStream = (data: {entId: string|number, startId?: string, pageSize:number} ) => {
  129. return request.get<TKnowLedgeStreamResponse>(`${bluebookAiAgent}api/v1/ent/knowledge/stream`, {params: data})
  130. }
  131. export const getEntKnowledgeQa = (knowledgeId: number|string, qaId: number|string) => {
  132. return request.get<TQAListItem>(`${bluebookAiAgent}api/v1/ent/knowledge/${knowledgeId}/${qaId}`)
  133. }