A structured multi-agent AI debate platform where multiple AI agents reason, challenge, and synthesize perspectives on any question.
| 역할 | 이름 | 학번 |
|---|---|---|
| 팀장 | 백우진 | 202322060 |
| 팀원 | Bek | 202222212 |
| 팀원 | Ko | 202322014 |
팀명: Apex | 프로젝트명: Agora
Agora는 여러 AI 에이전트가 사용자가 제시한 질문을 3라운드 구조로 토론하는 플랫폼입니다.
- Round 1 — Opening Statements: 각 에이전트가 자신의 입장과 핵심 논거를 제시합니다.
- Round 2 — Cross Examination: 에이전트들이 서로의 주장에 반박하고 응답합니다.
- Round 3 — Final Synthesis: 각 에이전트가 토론을 반영해 최종 입장을 정리합니다.
사용자는 에이전트 역할(예: analyst, critic, ethicist)을 자유롭게 구성하고, 원하는 질문으로 토론을 시작할 수 있습니다.
| 영역 | 기술 |
|---|---|
| Frontend | React 18, Vite, TypeScript, MUI (Material UI) |
| Backend | FastAPI, SQLAlchemy (async), Alembic, PostgreSQL |
| LLM | Groq / OpenAI (provider pattern) |
| Testing | pytest, pytest-asyncio, aiosqlite |
Agora/
├── client/ # React + Vite 프론트엔드
│ └── src/
│ ├── app/ # App 엔트리
│ ├── pages/ # 페이지 컴포넌트
│ ├── components/ # UI 컴포넌트
│ ├── services/ # API 레이어
│ ├── hooks/ # 커스텀 훅
│ ├── types/ # TypeScript 타입
│ └── theme/ # MUI 테마
└── server/ # FastAPI 백엔드
└── app/
├── api/ # API 라우터
├── models/ # DB 모델
├── schemas/ # Pydantic 스키마
├── services/ # 비즈니스 로직
└── core/ # 설정
- Python 3.11+
- Node.js 18+
- PostgreSQL
git clone <repository-url>
cd Agoracd server가상환경 생성 및 패키지 설치
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -r requirements.txt환경 변수 설정
.env.example을 복사하고 값을 채워주세요:
cp .env.example .envDATABASE_URL=postgresql+asyncpg://postgres:password@localhost:5432/agora
GROQ_API_KEY=your_groq_api_key
OPENAI_API_KEY=your_openai_api_key # 선택사항
LLM_PROVIDER=groq데이터베이스 마이그레이션 적용
alembic upgrade head서버 시작
uvicorn app.main:app --reload --port 8000백엔드가 http://localhost:8000 에서 실행됩니다.
API 문서: http://localhost:8000/docs
cd client패키지 설치
npm install환경 변수 설정
cp .env.example .env기본값은 이미 설정되어 있습니다:
VITE_API_BASE_URL=http://localhost:8000개발 서버 시작
npm run dev프론트엔드가 http://localhost:5173 에서 실행됩니다.
cd client
npm run buildcd server
pytest| Method | Endpoint | 설명 |
|---|---|---|
POST |
/debates/start |
새 토론 시작 |
GET |
/debates/{id} |
토론 결과 조회 |