Added reference resolver WIP (codex)
This commit is contained in:
53
main.py
53
main.py
@@ -14,7 +14,8 @@ import torch
|
||||
from asr import Asr, AsrRawResult
|
||||
from asr_filter import AsrFilter, AsrFilterResult
|
||||
from asr_eventizer import AsrEventizer
|
||||
from video_references import VideoReferenceBuilder
|
||||
from video_references import UnresolvedReferences, VideoReferenceBuilder
|
||||
from reference_resolver import ReferenceResolver
|
||||
from structure_builder import Structure, StructureBuilder
|
||||
from structure_refiner import StructureRefiner
|
||||
from markdown_builder import MarkdownBuilder
|
||||
@@ -100,6 +101,31 @@ def setup_arguments() -> argparse.Namespace:
|
||||
type=str,
|
||||
default=ai_api_key
|
||||
)
|
||||
parser.add_argument(
|
||||
"--resolver-ai-model",
|
||||
type=str,
|
||||
default="google/gemini-3.5-flash"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--resolver-ai-base-url",
|
||||
type=str,
|
||||
default="https://api.proxyapi.ru/v1"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--resolver-ai-api-key",
|
||||
type=str,
|
||||
default=ai_api_key
|
||||
)
|
||||
parser.add_argument(
|
||||
"--resolver-frame-interval",
|
||||
type=float,
|
||||
default=1.0
|
||||
)
|
||||
parser.add_argument(
|
||||
"--resolver-max-frames",
|
||||
type=int,
|
||||
default=9
|
||||
)
|
||||
parser.add_argument(
|
||||
"--structure-ai-model",
|
||||
type=str,
|
||||
@@ -253,10 +279,27 @@ def on_reference_resolver(current_step: Step, input_data: dict | None) -> tuple[
|
||||
return (Step.STRUCTURE_BUILDER, json.load(f))
|
||||
if not os.path.isfile("video.mp4"):
|
||||
logging.info("No video, skipping")
|
||||
return (Step.STRUCTURE_BUILDER, input_data)
|
||||
# NOT IMPLEMENTED
|
||||
logging.warning("Reference resolver is not implemented yet")
|
||||
return (None, None)
|
||||
with open("audio_events.json", "rb") as f:
|
||||
return (Step.STRUCTURE_BUILDER, json.load(f))
|
||||
if input_data is None:
|
||||
logging.error("Can't resolve video references without input_data")
|
||||
return (None, None)
|
||||
with open("audio_events.json", "rb") as f:
|
||||
timeline = Timeline(**json.load(f))
|
||||
logging.info("Creating the agent")
|
||||
agent = Agent(
|
||||
model=ARGS.resolver_ai_model,
|
||||
base_url=ARGS.resolver_ai_base_url,
|
||||
api_key=ARGS.resolver_ai_api_key
|
||||
)
|
||||
logging.info("Resolving video references...")
|
||||
resolver = ReferenceResolver(
|
||||
agent,
|
||||
frame_interval=ARGS.resolver_frame_interval,
|
||||
max_frames=ARGS.resolver_max_frames,
|
||||
)
|
||||
result = resolver.resolve(timeline, UnresolvedReferences(**input_data))
|
||||
return (Step.STRUCTURE_BUILDER, result.model_dump(mode="json"))
|
||||
|
||||
def on_structure_builder(current_step: Step, input_data: dict | None) -> tuple[Step | None, dict | None]:
|
||||
# don't if done
|
||||
|
||||
Reference in New Issue
Block a user