From a0c970922ccdf6b2c9d103ec7539950d83e5ba2b Mon Sep 17 00:00:00 2001 From: anurag-openai Date: Mon, 21 Jul 2025 17:18:25 -0700 Subject: [PATCH] Add prototype structure for banking demo --- .env.example | 2 ++ backend/.gitignore | 2 ++ backend/README.md | 4 ++++ backend/__init__.py | 0 backend/main.py | 8 ++++++++ backend/pyproject.toml | 12 ++++++++++++ backend/tests/test_main.py | 9 +++++++++ docs/banking-demo.md | 3 +++ frontend/.gitignore | 3 +++ frontend/README.md | 4 ++++ frontend/next.config.js | 6 ++++++ frontend/package.json | 15 +++++++++++++++ frontend/pages/index.tsx | 10 ++++++++++ frontend/public/.gitkeep | 0 frontend/tests/example.test.ts | 2 ++ frontend/tsconfig.json | 19 +++++++++++++++++++ start.sh | 6 ++++++ 17 files changed, 105 insertions(+) create mode 100644 .env.example create mode 100644 backend/.gitignore create mode 100644 backend/README.md create mode 100644 backend/__init__.py create mode 100644 backend/main.py create mode 100644 backend/pyproject.toml create mode 100644 backend/tests/test_main.py create mode 100644 docs/banking-demo.md create mode 100644 frontend/.gitignore create mode 100644 frontend/README.md create mode 100644 frontend/next.config.js create mode 100644 frontend/package.json create mode 100644 frontend/pages/index.tsx create mode 100644 frontend/public/.gitkeep create mode 100644 frontend/tests/example.test.ts create mode 100644 frontend/tsconfig.json create mode 100755 start.sh diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..f1ca09d94 --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +# Environment variables for the demo +OPENAI_API_KEY= diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 000000000..8d35cb327 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +*.pyc diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 000000000..07c6e42b7 --- /dev/null +++ b/backend/README.md @@ -0,0 +1,4 @@ +# Backend + +This folder contains the Python backend using FastAPI and the OpenAI Agents SDK. +Run `uvicorn backend.main:app --reload` to start the development server. diff --git a/backend/__init__.py b/backend/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/main.py b/backend/main.py new file mode 100644 index 000000000..36a944bbc --- /dev/null +++ b/backend/main.py @@ -0,0 +1,8 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/health") +def health() -> dict[str, str]: + return {"status": "ok"} diff --git a/backend/pyproject.toml b/backend/pyproject.toml new file mode 100644 index 000000000..2e686c451 --- /dev/null +++ b/backend/pyproject.toml @@ -0,0 +1,12 @@ +[project] +name = "banking-backend" +version = "0.1.0" +requires-python = ">=3.11" +dependencies = [ + "fastapi", + "uvicorn", + "openai", +] + +[tool.ruff] +line-length = 88 diff --git a/backend/tests/test_main.py b/backend/tests/test_main.py new file mode 100644 index 000000000..3134b84ca --- /dev/null +++ b/backend/tests/test_main.py @@ -0,0 +1,9 @@ +from fastapi.testclient import TestClient +from backend.main import app + + +def test_health() -> None: + client = TestClient(app) + response = client.get("/health") + assert response.status_code == 200 + assert response.json() == {"status": "ok"} diff --git a/docs/banking-demo.md b/docs/banking-demo.md new file mode 100644 index 000000000..6867886c2 --- /dev/null +++ b/docs/banking-demo.md @@ -0,0 +1,3 @@ +# Agentic Private Banker Demo + +This document provides a high-level overview of the multi-agent banking prototype. diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 000000000..a60845048 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,3 @@ +node_modules +.next +out diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 000000000..94eee0718 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,4 @@ +# Frontend + +This folder contains the NextJS frontend for the Agentic Private Banker demo. +Run `npm install` and `npm run dev` to start the development server. diff --git a/frontend/next.config.js b/frontend/next.config.js new file mode 100644 index 000000000..91ef62f0d --- /dev/null +++ b/frontend/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +}; + +module.exports = nextConfig; diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 000000000..4a8f880b9 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,15 @@ +{ + "name": "banking-frontend", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start" + }, + "dependencies": { + "next": "latest", + "react": "latest", + "react-dom": "latest" + } +} diff --git a/frontend/pages/index.tsx b/frontend/pages/index.tsx new file mode 100644 index 000000000..46f8e3bf0 --- /dev/null +++ b/frontend/pages/index.tsx @@ -0,0 +1,10 @@ +import React from 'react'; + +export default function Home() { + return ( +
+

Agentic Private Banker (Demo)

+

Prototype frontend using NextJS.

+
+ ); +} diff --git a/frontend/public/.gitkeep b/frontend/public/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/tests/example.test.ts b/frontend/tests/example.test.ts new file mode 100644 index 000000000..9fc42213e --- /dev/null +++ b/frontend/tests/example.test.ts @@ -0,0 +1,2 @@ +// Placeholder test file for frontend +export {}; // to make this a module diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 000000000..93a83a407 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve" + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/start.sh b/start.sh new file mode 100755 index 000000000..90e5e585f --- /dev/null +++ b/start.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# Start frontend and backend for the Agentic Private Banker demo + +( cd backend && uvicorn backend.main:app --reload & ) +( cd frontend && npm run dev & ) +wait