CreditCopilot / ui.py
okara chidera
chore: refactored code
4e36c6c unverified
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