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 ( +
Prototype frontend using NextJS.
+