soyames's picture
Deploy real Arwen Policy Space with corpus, retrieval, and model synthesis
8140e00
Raw
History Blame Contribute Delete
1.24 kB
from __future__ import annotations
import argparse
import json
from arwen_retrieval.models import CorpusRecord
from arwen_retrieval.retriever import InMemoryRetriever
from arwen_retrieval.service import RetrievalService
from .models import PolicyRequest
from .pipeline import ArwenPolicyEngine
def main() -> None:
parser = argparse.ArgumentParser(prog="arwen-policy")
parser.add_argument("question")
args = parser.parse_args()
# The CLI is intentionally a deterministic smoke-test interface until the
# production corpus loader and model adapter are configured.
records = [
CorpusRecord(
record_id="smoke-1",
source_id="smoke-source",
document_id="smoke-document",
segment_id="smoke-segment",
text="Digital policy should remain transparent and multistakeholder.",
stakeholder_groups=("civil_society",),
topics=("digital_policy",),
)
]
engine = ArwenPolicyEngine(RetrievalService(InMemoryRetriever(records)))
result = engine.analyze(PolicyRequest(question_id="cli", question=args.question))
print(json.dumps(result.__dict__, indent=2, default=list))
if __name__ == "__main__":
main()