feat: integrate chatbox research with datasets and backtests
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
from fastapi import APIRouter, Depends, Query, Request
|
||||
|
||||
from ..business import Business
|
||||
from ..research.contracts import ResearchPreviewInput
|
||||
from ..research.service import ResearchBuilder
|
||||
from ..security import require_auth
|
||||
from .contracts import (
|
||||
ControlInput,
|
||||
@@ -75,6 +77,13 @@ async def preview(body: PreviewInput, request: Request):
|
||||
return await Business(db).backtests.preview(body)
|
||||
|
||||
|
||||
@router.post("/research-previews", status_code=201, response_model=PreviewOutput)
|
||||
async def research_preview(body: ResearchPreviewInput, request: Request):
|
||||
"""Prepare typed field bindings for any research producer; never start a simulation."""
|
||||
async with request.app.state.sessions.begin() as db:
|
||||
return await ResearchBuilder(db, Business(db).backtests).prepare(body)
|
||||
|
||||
|
||||
@router.get("/previews/{preview_id}", response_model=PreviewOutput)
|
||||
async def get_preview(
|
||||
preview_id: str, request: Request, limit: int = Query(25, ge=1, le=100), offset: int = Query(0, ge=0)
|
||||
@@ -97,9 +106,17 @@ async def runs(
|
||||
limit: int = Query(25, ge=1, le=100),
|
||||
offset: int = Query(0, ge=0),
|
||||
source: str | None = Query(None, max_length=100),
|
||||
reference: str | None = Query(None, max_length=200),
|
||||
research_id: str | None = Query(None, max_length=200),
|
||||
):
|
||||
async with request.app.state.sessions() as db:
|
||||
return await Business(db).backtests.runs(limit, offset, source)
|
||||
return await Business(db).backtests.runs(limit, offset, source, reference, research_id)
|
||||
|
||||
|
||||
@router.get("/sources", response_model=list[str])
|
||||
async def sources(request: Request):
|
||||
async with request.app.state.sessions() as db:
|
||||
return await Business(db).backtests.sources()
|
||||
|
||||
|
||||
@router.get("/runs/{run_id}", response_model=RunOutput)
|
||||
|
||||
Reference in New Issue
Block a user