Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import gradio as gr | |
| from pipelines import ask, build_kb, summarize | |
| from policy import DEFAULT_POLICY | |
| def create_interface() -> gr.Blocks: | |
| with gr.Blocks(title="CreditCopilot — RAG for Loan Docs") as demo: | |
| gr.Markdown( | |
| "# 🧠 CreditCopilot\nRetrieval-augmented assistant that summarizes loan documents, checks policy rules, and suggests next actions." | |
| ) | |
| with gr.Row(): | |
| with gr.Column(scale=1): | |
| files = gr.Files(label="Upload loan PDFs", file_count="multiple", file_types=[".pdf"]) | |
| policy = gr.Code(value=DEFAULT_POLICY, language="yaml", label="Policy rules (YAML)") | |
| build_btn = gr.Button("Build knowledge base", variant="primary") | |
| build_status = gr.Markdown() | |
| sum_btn = gr.Button("Quick summarize") | |
| sum_out = gr.Textbox(label="Portfolio-ready summary", lines=8) | |
| with gr.Column(scale=2): | |
| question = gr.Textbox( | |
| label="Ask a question (e.g., What are the key risks and missing docs?)", lines=2 | |
| ) | |
| ask_btn = gr.Button("Ask") | |
| answer = gr.Markdown(label="Answer") | |
| policy_report = gr.Code(label="Policy check report (JSON)") | |
| actions = gr.Markdown(label="Suggested next actions") | |
| build_btn.click(build_kb, [files, policy], [build_status, policy]) | |
| ask_btn.click(ask, [question, policy], [answer, policy_report, actions]) | |
| sum_btn.click(summarize, None, sum_out) | |
| return demo | |