Jelajahi Sumber

feat: pdf信息处理组件

hotchicken1996 1 bulan lalu
induk
melakukan
496b21788b

+ 2 - 1
client/.env.dev

@@ -10,7 +10,8 @@ VITE_DEV=false
 
 
 # AI问答地址
-VITE_AI_BASE_URL='http://10.10.10.7:8518/knowledge'
+#VITE_AI_BASE_URL='http://10.10.10.7:8518/knowledge/api'
+VITE_AI_BASE_URL='https://oa.zjugis.com:28080/aiserver'
 
 # 上传路径
 VITE_UPLOAD_URL='/infra/file/upload'

+ 1 - 1
client/src/service/aiService.ts

@@ -19,7 +19,7 @@ export const kbChat = (body: SSEApi): void => {
     prompt_name: 'rag_context_qa.md',
     ...paramBody
   }
-  void fetchEventSource(`${baseUrl}/api/chat/kb_chat`, {
+  void fetchEventSource(`${baseUrl}/chat/kb_chat`, {
     method: 'POST',
     openWhenHidden: true,
     headers: {

+ 6 - 5
client/src/views/OaSystem/aiQA/components/AResult.vue

@@ -2,6 +2,7 @@
 import { computed } from 'vue'
 import { AResultRecord } from '@/hooks/web/useSSE'
 import MarkdownView from '@/components/Markdown/MarkdownView.vue'
+import PDFLink from '@/views/OaSystem/aiQA/components/PDFLink.vue'
 
 interface AResultProps {
   data: AResultRecord
@@ -21,15 +22,14 @@ const realResultContent = computed(() => {
     <div class="result-text">
       <MarkdownView :text="realResultContent" />
     </div>
-    <!--    <div class="result-files">
-      <div class="label"></div>
+    <div class="result-files">
+      <div class="label">【来源文件】:</div>
       <div class="files-container">
         <div class="file" v-for="file in data?.result?.['0']?.docs" :key="file">
-          &lt;!&ndash;    todo 从字符串中解析数据展示     &ndash;&gt;
-          <a :href="file" target="_blank">{{ file }}</a>
+          <PDFLink :data="file" />
         </div>
       </div>
-    </div>-->
+    </div>
   </div>
 </template>
 
@@ -42,6 +42,7 @@ const realResultContent = computed(() => {
   }
 
   .result-files {
+    margin-top: 15px;
     display: flex;
 
     .label {

+ 25 - 0
client/src/views/OaSystem/aiQA/components/PDFLink.vue

@@ -0,0 +1,25 @@
+<script setup lang="ts">
+import { computed } from 'vue'
+
+interface PDFLinkProps {
+  data: string // 字符串为大模型接口返回特定模式
+}
+
+const props = defineProps<PDFLinkProps>()
+const { data } = toRefs(props)
+const pdfName = computed(() => {
+  return data.value?.split('(')?.[0]
+})
+const pdfUrl = computed(() => {
+  return data.value?.split('(')?.[1]?.split(')')?.[0]
+})
+</script>
+
+<template>
+  <div>
+    <el-tooltip content="点击下载" placement="top-end">
+      <a :href="pdfUrl">{{ pdfName }}</a>
+    </el-tooltip>
+  </div>
+</template>
+<style scoped lang="scss"></style>