init: llm-wiki-haness 하네스 설계
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""CLI: python -m deep_research --backend {codex|antigravity} "<질문>" [--json]"""
|
||||
import argparse
|
||||
import asyncio
|
||||
import shutil
|
||||
import sys
|
||||
from deep_research.config import DEFAULT
|
||||
from deep_research.pipeline import run_research
|
||||
from deep_research.report import to_markdown, to_json
|
||||
|
||||
|
||||
def _make_backend(name: str):
|
||||
if name == "codex":
|
||||
if shutil.which("codex") is None:
|
||||
sys.exit("error: `codex` CLI not found on PATH. Install + login (subscription).")
|
||||
from deep_research.backends.codex import CodexBackend
|
||||
return CodexBackend()
|
||||
if name == "antigravity":
|
||||
if shutil.which("agy") is None:
|
||||
sys.exit("error: `agy` CLI not found on PATH. Install + login (subscription).")
|
||||
from deep_research.backends.antigravity import AntigravityBackend
|
||||
return AntigravityBackend(retries=DEFAULT.ANTIGRAVITY_RETRIES)
|
||||
sys.exit(f"error: unknown backend '{name}'")
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
ap = argparse.ArgumentParser(prog="deep-research")
|
||||
ap.add_argument("question")
|
||||
ap.add_argument("--backend", required=True, choices=["codex", "antigravity"])
|
||||
ap.add_argument("--json", action="store_true", help="emit raw JSON instead of markdown")
|
||||
ap.add_argument("--concurrency", type=int, default=DEFAULT.CONCURRENCY)
|
||||
args = ap.parse_args(argv)
|
||||
|
||||
if args.concurrency < 1:
|
||||
sys.exit("error: --concurrency must be >= 1")
|
||||
|
||||
backend = _make_backend(args.backend)
|
||||
cfg = DEFAULT.__class__(CONCURRENCY=args.concurrency)
|
||||
result = asyncio.run(run_research(args.question, backend, config=cfg))
|
||||
print(to_json(result) if args.json else to_markdown(result))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user