Toggle navigation
Toggle navigation
This project
Loading...
Sign in
lizhengwei
/
aigc-embedding-service
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
wangdongxu
2026-05-15 10:07:27 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c9cc3066908f3680721442c6465a6a580a9a9ea2
c9cc3066
1 parent
1ad47aa5
jira:NYJ-1550 desc:football replay match
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
73 additions
and
1 deletions
pyproject.toml
src/football_replay_match/cfg/config.yaml
src/football_replay_match/core/api.py
uv.lock
pyproject.toml
View file @
c9cc306
...
...
@@ -26,6 +26,7 @@ embedding = [
]
football-replay-match
=
[
"confluent_kafka==2.6.1"
,
"langchain-openai>=1.1.15"
,
]
# task-server 专用依赖
task
=
[
...
...
src/football_replay_match/cfg/config.yaml
View file @
c9cc306
app_name
:
"
Football
Replay
Service"
app_version
:
"
1.0.0"
match_by_time_threshold
:
30
# 通过时间匹配进球事件的阈值(秒)
\ No newline at end of file
...
...
src/football_replay_match/core/api.py
View file @
c9cc306
def
replay_match_event
(
data
):
import
logging
from
aabd.base.enhance_dict
import
value_or_default
logger
=
logging
.
getLogger
(
__name__
)
class
FootballReplayMatch
:
def
__init__
(
self
,
settings
):
self
.
settings
=
settings
self
.
match_by_time_threshold
=
value_or_default
(
settings
.
match_by_time_threshold
,
30
)
*
1000
def
match_by_time
(
self
,
replay
,
events
):
start_utc
=
replay
.
get
(
'start_utc'
)
events
=
[(
start_utc
-
e
.
get
(
'event_utc'
),
e
)
for
e
in
events
]
events
.
sort
(
key
=
lambda
x
:
abs
(
x
[
0
]))
time_diff
,
event
=
events
[
0
]
if
time_diff
<
self
.
match_by_time_threshold
:
return
event
else
:
return
None
def
det_goal_replay
(
self
,
replay
):
pass
def
match_by_llm
(
self
,
replay
,
events
):
pass
def
replay_match_event
(
self
,
data
):
"""
:param data:
{
id:xx,
match_id: 比赛id,
replay:{
id:,
url:,
start_utc:,
end_utc:,
}
events:[{
id:xx,
type:xx,
url:xx,
event_utc,
}]
}
:return:
"""
# 该时间段附近是否有进球事件
replay_info
=
data
[
'replay'
]
live_events
=
data
[
'events'
]
goal_live_events
=
[
e
for
e
in
live_events
if
str
(
e
.
get
(
'type'
,
''
))
==
'1'
]
matched_event
=
self
.
match_by_time
(
replay_info
,
goal_live_events
)
if
matched_event
is
None
:
replay_det_info
=
self
.
det_goal_replay
(
replay_info
)
replay_event_name
=
replay_det_info
.
get
(
'event_name'
,
''
)
if
replay_event_name
==
'进球'
:
matched_event
=
self
.
match_by_llm
(
replay_info
,
goal_live_events
)
if
matched_event
is
None
:
logger
.
info
(
f
'LLM认为是进球但是未能找到匹配的事件'
)
else
:
logger
.
info
(
'LLM找到进球的事件'
)
else
:
logger
.
info
(
f
'LLM判断不是进球,无需匹配'
)
else
:
logger
.
info
(
f
'通过时间找到匹配的事件'
)
...
...
uv.lock
View file @
c9cc306
This diff could not be displayed because it is too large.
Please
register
or
login
to post a comment