|
@@ -665,9 +665,9 @@ const streamToAnswer = () => {
|
|
|
};
|
|
|
|
|
|
const tabs = [
|
|
|
- { key: 'knowledge', name: '知识库' },
|
|
|
- { key: 'paper', name: '学术' },
|
|
|
- { key: 'net', name: '全网' }
|
|
|
+ { key: 'knowledge', name: '知识库' }
|
|
|
+ // { key: 'paper', name: '学术' },
|
|
|
+ // { key: 'net', name: '全网' }
|
|
|
];
|
|
|
|
|
|
const steps = ref([
|
|
@@ -1115,7 +1115,7 @@ const quest = async (isFllow) => {
|
|
|
docs: []
|
|
|
};
|
|
|
activeIndex.value = 0;
|
|
|
- // await getQuestionKeyWords();
|
|
|
+ getQuestionKeyWords();
|
|
|
|
|
|
if (activeTab.value === 'net') {
|
|
|
questionUrl = '/chat/bing_chat';
|
|
@@ -1452,8 +1452,10 @@ const openDoc = (doc, i) => {
|
|
|
'=policy&',
|
|
|
activeTab.value === 'paper' ? '=compose_paper_material_total&' : '=policy&'
|
|
|
),
|
|
|
- window.AppGlobalConfig.knowledgeDocUrlProxy +
|
|
|
- (activeTab.value === 'paper' ? 'compose_paper_material_total/' : 'policy/')
|
|
|
+ window.AppGlobalConfig.knowledgeDocUrlProxy.replace(
|
|
|
+ '=policy&',
|
|
|
+ activeTab.value === 'paper' ? '=compose_paper_material_total&' : '=policy&'
|
|
|
+ )
|
|
|
);
|
|
|
showDoc.value = true;
|
|
|
fileType.value = type;
|
|
@@ -1504,10 +1506,11 @@ const openDocByIndex = (ind, id) => {
|
|
|
'=policy&',
|
|
|
activeTab.value === 'paper' ? '=compose_paper_material_total&' : '=policy&'
|
|
|
),
|
|
|
- window.AppGlobalConfig.knowledgeDocUrlProxy +
|
|
|
- (activeTab.value === 'paper' ? 'compose_paper_material_total/' : 'policy/')
|
|
|
+ window.AppGlobalConfig.knowledgeDocUrlProxy.replace(
|
|
|
+ '=policy&',
|
|
|
+ activeTab.value === 'paper' ? '=compose_paper_material_total&' : '=policy&'
|
|
|
+ )
|
|
|
);
|
|
|
-
|
|
|
showDoc.value = true;
|
|
|
};
|
|
|
window.openDocByIndex = openDocByIndex;
|
|
@@ -1590,8 +1593,10 @@ for example:
|
|
|
redirect: 'follow'
|
|
|
};
|
|
|
|
|
|
- fetch(window.AppGlobalConfig.knowledgeServer + '/chat/chat/completions', requestOptions)
|
|
|
- .then((response) => response.json())
|
|
|
+ fetch(window.AppGlobalConfig.knowledgeServer + '/chat/chat', requestOptions)
|
|
|
+ .then((response) => {
|
|
|
+ return response.json()
|
|
|
+ })
|
|
|
.then((msg) => {
|
|
|
const str = msg.choices[0]?.message?.content;
|
|
|
if (str) {
|
|
@@ -1608,7 +1613,7 @@ const changeRecommendedQuestions = () => {
|
|
|
questions.value = recommendedQuestions.slice(0, 5);
|
|
|
} else {
|
|
|
questions.value = recommendedQuestions.slice(5);
|
|
|
- // getRecommendedQuestion(true)
|
|
|
+ getRecommendedQuestion(true)
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -1618,19 +1623,7 @@ const getQuestionKeyWords = async () => {
|
|
|
myHeaders.append('Content-Type', 'application/json');
|
|
|
questions.value = [];
|
|
|
const raw = JSON.stringify({
|
|
|
- messages: [
|
|
|
- {
|
|
|
- // 精确关键词提取叙述
|
|
|
- content: `
|
|
|
- 请从以下文本中提取核心关键词,确保关键词简洁明了且准确反映文本的主要内容。
|
|
|
- 请按照以下格式输出:
|
|
|
- 关键词:关键词1,关键词2。
|
|
|
- 文本如下:“${question}”`,
|
|
|
- role: 'user'
|
|
|
- }
|
|
|
- ],
|
|
|
- // model: 'qwen1.5-chat',
|
|
|
- model: 'qwen2.5-instruct',
|
|
|
+ query: `请从以下文本中提取核心关键词,确保关键词简洁明了且准确反映文本的主要内容。 请按照以下格式输出:关键词:关键词1,关键词2。文本如下:“${question}”`,
|
|
|
stream: false
|
|
|
});
|
|
|
|
|
@@ -1641,17 +1634,16 @@ const getQuestionKeyWords = async () => {
|
|
|
redirect: 'follow'
|
|
|
};
|
|
|
|
|
|
- return fetch(window.AppGlobalConfig.knowledgeServer + '/chat/chat/completions', requestOptions)
|
|
|
+ return fetch(window.AppGlobalConfig.knowledgeServer + '/chat/chat', requestOptions)
|
|
|
.then((response) => response.json())
|
|
|
- .then((msg) => {
|
|
|
+ .then((msgStr) => {
|
|
|
+ const msg = JSON.parse(msgStr)
|
|
|
activeIndex.value = 1;
|
|
|
const str = msg.choices[0]?.message?.content;
|
|
|
if (str) {
|
|
|
- // steps.value[0].tags = str.split('\n\n').replaceAll('核心词为:', '').replaceAll("。", "").map(q => {
|
|
|
- //
|
|
|
- // return q.substring(q.indexOf('.') + 1, q.length)
|
|
|
- // }).splice(0,3);
|
|
|
- const keywords = splitWords(str).slice(0, 3);
|
|
|
+ const str1 = str.slice(str.indexOf("</think>")+7)
|
|
|
+ console.log(str1)
|
|
|
+ const keywords = splitWords(str1).slice(0, 3);
|
|
|
setActiveIndexTags(0, keywords);
|
|
|
currentResponse.value.keywords = keywords;
|
|
|
}
|
|
@@ -1664,6 +1656,7 @@ const splitWords = (word) => {
|
|
|
word = word
|
|
|
.replaceAll('核心词为:', '')
|
|
|
.replaceAll('问题核心词:', '')
|
|
|
+ .replaceAll('>', '')
|
|
|
.replaceAll('。', '')
|
|
|
.trim();
|
|
|
|
|
@@ -1773,7 +1766,14 @@ const generateToc = () => {
|
|
|
// });
|
|
|
return;
|
|
|
}
|
|
|
- const markdowns = document.getElementById('resMarkdown').children;
|
|
|
+ const resMarkdownDom = document.getElementById("resMarkdown");
|
|
|
+ let thinkDoms = resMarkdownDom.getElementsByTagName("think");
|
|
|
+ let markdowns = null;
|
|
|
+ if (!thinkDoms || thinkDoms.length === 0) {
|
|
|
+ markdowns = resMarkdownDom.children;
|
|
|
+ } else {
|
|
|
+ markdowns = thinkDoms[0].children
|
|
|
+ }
|
|
|
let index = 1;
|
|
|
let children = [];
|
|
|
let toc = [];
|
|
@@ -1857,12 +1857,10 @@ defineExpose({ search, changeActiveTab, stopAI });
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
@import 'src/assets/scss/variables';
|
|
|
-
|
|
|
.ai-search-detail {
|
|
|
width: 100%;
|
|
|
background: $background_color;
|
|
|
height: 100%;
|
|
|
- overflow: hidden;
|
|
|
.header {
|
|
|
width: 100%;
|
|
|
height: 60px;
|
|
@@ -1876,7 +1874,6 @@ defineExpose({ search, changeActiveTab, stopAI });
|
|
|
display: flex;
|
|
|
margin-top: 50px;
|
|
|
padding-bottom: 50px;
|
|
|
- overflow-y: auto;
|
|
|
.markdown-toc-tdsc {
|
|
|
:deep(.toc-list) {
|
|
|
margin: 30px 0;
|