Toggle navigation
Toggle navigation
This project
Loading...
Sign in
万朱浩
/
Venue-Ops
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
马一丁
2025-11-22 16:22:30 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
dfb06970b26e352d3f42cf6160d3b94678140e7b
dfb06970
1 parent
bdf50ff7
Fixed the Issue Where Search History was not Displayed in Media Engine
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
10 deletions
MediaEngine/agent.py
MediaEngine/state/state.py
SingleEngineApp/media_engine_streamlit_app.py
MediaEngine/agent.py
View file @
dfb0697
...
...
@@ -263,7 +263,12 @@ class DeepSearchAgent:
logger
.
info
(
" - 未找到搜索结果"
)
# 更新状态中的搜索历史
paragraph
.
research
.
add_search_results
(
search_query
,
search_results
)
paragraph
.
research
.
add_search_results
(
search_query
,
search_results
,
search_tool
=
search_tool
,
paragraph_title
=
paragraph
.
title
,
)
# 生成初始总结
logger
.
info
(
" - 生成初始总结..."
)
...
...
@@ -341,7 +346,12 @@ class DeepSearchAgent:
logger
.
info
(
" 未找到反思搜索结果"
)
# 更新搜索历史
paragraph
.
research
.
add_search_results
(
search_query
,
search_results
)
paragraph
.
research
.
add_search_results
(
search_query
,
search_results
,
search_tool
=
search_tool
,
paragraph_title
=
paragraph
.
title
,
)
# 生成反思总结
reflection_summary_input
=
{
...
...
MediaEngine/state/state.py
View file @
dfb0697
...
...
@@ -17,6 +17,9 @@ class Search:
title
:
str
=
""
# 搜索结果标题
content
:
str
=
""
# 搜索返回的内容
score
:
Optional
[
float
]
=
None
# 相关度评分
paragraph_title
:
str
=
""
# 段落标题,便于展示归属
search_tool
:
str
=
""
# 使用的搜索工具
has_result
:
bool
=
True
# 是否有返回结果
timestamp
:
str
=
field
(
default_factory
=
lambda
:
datetime
.
now
()
.
isoformat
())
def
to_dict
(
self
)
->
Dict
[
str
,
Any
]:
...
...
@@ -27,6 +30,9 @@ class Search:
"title"
:
self
.
title
,
"content"
:
self
.
content
,
"score"
:
self
.
score
,
"paragraph_title"
:
self
.
paragraph_title
,
"search_tool"
:
self
.
search_tool
,
"has_result"
:
self
.
has_result
,
"timestamp"
:
self
.
timestamp
}
...
...
@@ -39,6 +45,9 @@ class Search:
title
=
data
.
get
(
"title"
,
""
),
content
=
data
.
get
(
"content"
,
""
),
score
=
data
.
get
(
"score"
),
paragraph_title
=
data
.
get
(
"paragraph_title"
,
""
),
search_tool
=
data
.
get
(
"search_tool"
,
""
),
has_result
=
data
.
get
(
"has_result"
,
True
),
timestamp
=
data
.
get
(
"timestamp"
,
datetime
.
now
()
.
isoformat
())
)
...
...
@@ -55,23 +64,42 @@ class Research:
"""添加搜索记录"""
self
.
search_history
.
append
(
search
)
def
add_search_results
(
self
,
query
:
str
,
results
:
List
[
Dict
[
str
,
Any
]]):
def
add_search_results
(
self
,
query
:
str
,
results
:
List
[
Dict
[
str
,
Any
]]
,
search_tool
:
str
=
""
,
paragraph_title
:
str
=
""
):
"""批量添加搜索结果"""
if
not
results
:
# 记录一次“无结果”搜索,方便前端显示搜索轨迹
self
.
add_search
(
Search
(
query
=
query
or
""
,
title
=
"未找到结果"
,
content
=
"本次搜索未返回结果或调用失败"
,
url
=
""
,
score
=
None
,
paragraph_title
=
paragraph_title
,
search_tool
=
search_tool
,
has_result
=
False
,
)
)
return
for
result
in
results
:
# 防御空值,避免下游展示时报错
url
=
result
.
get
(
"url"
)
or
""
title
=
result
.
get
(
"title"
)
or
""
content
=
result
.
get
(
"content"
)
or
""
content
=
result
.
get
(
"content"
)
or
result
.
get
(
"raw_content"
)
or
""
if
not
isinstance
(
content
,
str
):
content
=
str
(
content
)
search
=
Search
(
self
.
add_search
(
Search
(
query
=
query
or
""
,
url
=
url
,
title
=
title
,
content
=
content
,
score
=
result
.
get
(
"score"
)
score
=
result
.
get
(
"score"
),
paragraph_title
=
paragraph_title
or
result
.
get
(
"paragraph_title"
,
""
),
search_tool
=
search_tool
or
result
.
get
(
"search_tool"
,
""
),
has_result
=
True
,
)
)
self
.
add_search
(
search
)
def
get_search_count
(
self
)
->
int
:
"""获取搜索次数"""
...
...
SingleEngineApp/media_engine_streamlit_app.py
View file @
dfb0697
...
...
@@ -222,14 +222,21 @@ def display_results(agent: DeepSearchAgent, final_report: str):
for
i
,
search
in
enumerate
(
all_searches
):
query_label
=
search
.
query
if
search
.
query
else
"未记录查询"
with
st
.
expander
(
f
"搜索 {i + 1}: {query_label}"
):
paragraph_title
=
getattr
(
search
,
"paragraph_title"
,
""
)
or
"未标注段落"
search_tool
=
getattr
(
search
,
"search_tool"
,
""
)
or
"未标注工具"
has_result
=
getattr
(
search
,
"has_result"
,
True
)
st
.
write
(
"**段落:**"
,
paragraph_title
)
st
.
write
(
"**使用的工具:**"
,
search_tool
)
preview
=
search
.
content
or
""
if
not
isinstance
(
preview
,
str
):
preview
=
str
(
preview
)
if
len
(
preview
)
>
200
:
preview
=
preview
[:
200
]
+
"..."
st
.
write
(
"**URL:**"
,
search
.
url
)
st
.
write
(
"**标题:**"
,
search
.
title
)
st
.
write
(
"**URL:**"
,
search
.
url
or
"无"
)
st
.
write
(
"**标题:**"
,
search
.
title
or
"无"
)
st
.
write
(
"**内容预览:**"
,
preview
if
preview
else
"无可用内容"
)
if
not
has_result
:
st
.
info
(
"本次搜索未返回结果"
)
if
search
.
score
:
st
.
write
(
"**相关度评分:**"
,
search
.
score
)
...
...
Please
register
or
login
to post a comment