Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
inscode
NodeJS_639770
提交
50b81b3a
N
NodeJS_639770
项目概览
inscode
/
NodeJS_639770
与 Fork 源项目一致
Fork自
inscode / NodeJS
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NodeJS_639770
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
50b81b3a
编写于
5月 16, 2024
作者:
D
DebugIsFalse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feature: 优化渲染逻辑
上级
df1a0023
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
54 addition
and
28 deletion
+54
-28
pages/search/[id].vue
pages/search/[id].vue
+54
-28
未找到文件。
pages/search/[id].vue
浏览文件 @
50b81b3a
...
...
@@ -43,7 +43,7 @@
<div
class=
"flex justify-between items-center"
>
<div
class=
"flex items-center gap-2 text-lg"
>
<UIcon
name=
"i-heroicons-sparkles-20-solid"
/>
搜索过程
搜索过程
{{
item
.
desLoading
?
'
中...
'
:
''
}}
</div>
<UButton
size=
"md"
...
...
@@ -63,7 +63,7 @@
<div
class=
"text-xl flex items-center space-x-1"
>
<UIcon
name=
"i-heroicons-chat-bubble-left-right-20-solid"
/>
<span>
答案
</span>
<span>
{{ item.ansLoading ? '回答中' : '答案' }}
</span>
</div>
<MdRenderer
:content=
"item.article"
/>
<div
class=
"space-x-2"
>
...
...
@@ -145,6 +145,7 @@ const route = useRoute()
const
{
fetchRequest
}
=
useFetchRequest
()
const
repos
=
getMockRepo
();
const
initLoading
=
ref
(
true
);
const
editIndex
=
ref
(
0
);
// todo mock
const
repoItem
=
repos
.
find
(
item
=>
route
.
query
.
repo
===
item
.
label
);
const
state
=
reactive
({
...
...
@@ -171,10 +172,24 @@ const handleShare = (hash) => {
})
}
const
handleCopyMD
=
(
index
)
=>
{
const
article
=
data
.
value
[
index
].
article
useCopyToClipboard
().
copy
(
article
)
toast
.
add
({
icon
:
'
i-heroicons-information-circle-20-solid
'
,
timeout
:
1000
,
title
:
'
复制成功
'
})
}
const
handleReGenerate
=
(
index
)
=>
{
editIndex
.
value
=
index
;
const
question
=
data
.
value
[
editIndex
.
value
].
question
;
data
.
value
[
editIndex
.
value
]
=
{
question
,
desLoading
:
true
};
nextTick
(()
=>
{
generateFetchData
(
question
);
})
}
const
steps
=
[
''
,
'
问题分析
'
,
'
代码搜索
'
,
'
整理答案
'
,
'
完成!
'
]
...
...
@@ -195,8 +210,10 @@ const recommendQuestions = [
const
continueQuestion
=
ref
(
null
)
let
asking
=
ref
(
false
)
const
handleContinueAsk
=
(
question
)
=>
{
if
(
asking
.
value
)
return
;
asking
.
value
=
true
;
if
(
asking
.
value
)
return
asking
.
value
=
true
editIndex
.
value
=
data
.
value
.
length
;
createGenerateInitItem
(
question
);
generateFetchData
(
question
);
}
...
...
@@ -204,6 +221,12 @@ const handleContinueAsk = (question) => {
let
aiChatController
=
null
;
// 用户取消操作方法
const
markedEnd
=
'
[DONE]
'
;
let
storeSource
=
[];
const
createGenerateInitItem
=
(
question
)
=>
{
data
.
value
.
push
({
question
,
desLoading
:
true
})
}
const
resetAnsLoading
=
()
=>
{
Object
.
assign
(
data
.
value
[
editIndex
.
value
],
{
ansLoading
:
false
})
}
const
handleFormFetchData
=
(
fetchData
)
=>
{
let
message
=
{};
try
{
...
...
@@ -212,41 +235,40 @@ const handleFormFetchData = (fetchData) => {
console
.
log
(
error
)
}
if
(
Object
.
keys
(
message
).
length
===
0
)
return
;
const
index
=
data
.
value
.
length
===
0
?
0
:
data
.
value
.
length
-
1
;
data
.
value
[
index
]
=
data
.
value
[
index
]
||
{};
const
{
meta
,
choices
}
=
message
;
const
index
=
editIndex
.
value
;
if
(
meta
.
type
===
'
answer
'
)
{
Object
.
assign
(
data
.
value
[
index
],
{
question
:
state
.
query
,
ansLoading
:
true
,
desLoading
:
false
,
article
:
message
.
choices
[
0
].
message
.
content
})
return
;
return
}
if
(
meta
.
type
===
'
log
'
)
{
if
(
meta
.
action
===
'
rephrase_question
'
)
{
Object
.
assign
(
data
.
value
[
index
],
{
description
:
choices
[
0
].
message
.
content
})
}
else
if
(
meta
.
action
===
'
search_file
'
)
{
let
source
=
choices
[
0
].
message
.
content
;
storeSource
=
source
.
split
(
'
\n
'
).
map
(
item
=>
{
return
{
label
:
item
,
link
:
''
,
repo
:
''
}
});
}
if
(
meta
.
type
!==
'
log
'
)
return
if
(
meta
.
action
===
'
rephrase_question
'
)
{
Object
.
assign
(
data
.
value
[
index
],
{
description
:
choices
[
0
].
message
.
content
,
desLoading
:
true
})
return
}
if
(
meta
.
action
===
'
search_file
'
)
{
Object
.
assign
(
data
.
value
[
index
],
{
desLoading
:
true
})
let
source
=
choices
[
0
].
message
.
content
;
storeSource
=
source
.
split
(
'
\n
'
);
}
}
const
handleUpdateSource
=
()
=>
{
const
index
=
data
.
value
.
length
===
0
?
0
:
data
.
value
.
length
-
1
;
const
index
=
editIndex
.
value
;
data
.
value
[
index
]
=
data
.
value
[
index
]
||
{};
// https://github.com/allwefantasy/byzer-llm/blob/master/tests/functions_suite.py
const
endWidthGit
=
state
.
gitPath
.
endsWith
(
'
.git
'
);
const
baseUrl
=
endWidthGit
?
state
.
gitPath
.
slice
(
0
,
state
.
gitPath
.
length
-
4
)
:
state
.
gitPath
;
storeSource
=
storeSource
.
map
((
item
)
=>
{
item
.
repo
=
state
.
repo
;
item
.
link
=
`
${
baseUrl
}
/blob/
${
state
.
branch
}
/
${
item
.
label
}
`
return
item
;
return
{
repo
:
state
.
repo
,
link
:
`
${
baseUrl
}
/blob/
${
state
.
branch
}
/
${
item
.
label
}
`
,
label
:
item
}
})
Object
.
assign
(
data
.
value
[
index
],
{
source
:
storeSource
});
}
...
...
@@ -254,9 +276,13 @@ const handleHideInitLoading = () => {
initLoading
.
value
=
false
;
}
const
handleMessage
=
(
event
)
=>
{
if
(
initLoading
.
value
)
handleHideInitLoading
();
if
(
initLoading
.
value
)
{
handleHideInitLoading
()
createGenerateInitItem
(
state
.
query
)
};
if
(
event
.
data
===
markedEnd
)
{
asking
.
value
=
false
;
resetAnsLoading
();
handleUpdateSource
();
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录