Standard AI는 개인 자산관리와 청년정책 서비스를 위한 AI 백엔드입니다.
FastAPI 기반으로 금융상품 추천, 투자 추천, 신용등급 분석, 자산관리 챗봇, 채팅 키워드 추출 기능을 제공합니다.
- 금융상품 추천 RAG
- 투자 상품 추천
- 신용등급 계산 및 관리 팁 제공
- 개인 자산관리 및 청년정책 챗봇
- 채팅 기록 저장 및 조회
- 채팅 기반 키워드 추출
- FastAPI 기반 REST API 제공
- Docker 기반 배포 지원
- Python 3.11
- FastAPI
- Uvicorn
- OpenAI API
- LangChain
- FAISS
- MongoDB
- PyMongo
- KeyBERT
- SentenceTransformers
- Pydantic
- Docker
standard_ai/
├── app/
│ ├── main.py # FastAPI 서버 진입점
│ ├── schemas.py # 요청 데이터 스키마
│ ├── chatbot/
│ │ ├── chatbot_prompt.py # 자산관리/청년정책 챗봇 프롬프트
│ │ └── chatbot_keyword.py # 채팅 기반 키워드 추출
│ ├── credRate/
│ │ ├── credRate_prompt.py # 신용등급 분석 프롬프트
│ │ └── credRate_cal.py # 신용등급 계산 로직
│ ├── invRecom/
│ │ ├── invest_recommend.py # 투자 추천 로직
│ │ └── invRecom_rag.py # 투자 추천 RAG 구성
│ └── prodRecom/
│ ├── prodrecom_rag.py # 금융상품 추천 RAG 구성
│ ├── prodrecom_fewshot.py # 금융상품 추천 Few-shot 프롬프트
│ └── prodrecom_utils.py # JSON 파싱 유틸
├── rag/
│ └── 은행상품_설명.txt # RAG 검색용 금융상품 문서
├── requirements.txt
├── dockerfile
└── README.mdgit clone https://github.com/2025-Standard/standard_ai.git
cd standard_aipython -m venv .venvLinux / macOS:
source .venv/bin/activateWindows PowerShell:
.venv\Scripts\Activate.ps1pip install -r requirements.txtDockerfile 기준으로 추가 설치되는 주요 패키지는 다음과 같습니다.
pip install langchain==0.3.23
pip install langchain_openai==0.3.14
pip install langchain_community==0.3.23
pip install langchain_core==0.3.23
pip install faiss-cpu
pip install tf-keras
pip install keybert프로젝트 루트에 .env 파일을 생성하고 아래 값을 설정합니다.
OPENAI_API_KEY=your_openai_api_key
MONGO_DB_URL=your_mongodb_connection_url| 이름 | 설명 |
|---|---|
| OPENAI_API_KEY | OpenAI API 호출에 사용하는 키 |
| MONGO_DB_URL | 채팅 기록 및 키워드 저장에 사용하는 MongoDB 연결 URL |
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload서버 실행 후 API 문서는 아래 경로에서 확인할 수 있습니다.
http://localhost:8000/api/docs
http://localhost:8000/api/redoc
이 프로젝트는 Docker 실행을 지원합니다.
docker build -f dockerfile -t standard-ai .docker run -p 8000:8000 \
-e OPENAI_API_KEY=your_openai_api_key \
-e MONGO_DB_URL=your_mongodb_connection_url \
standard-ai사용자의 가입 기간, 선호 은행, 지역 정보를 기반으로 금융상품을 추천합니다.
POST /api/prodRecom{
"value": 1000000,
"period": "1년",
"bank": "KB국민은행",
"country": "경북"
}| 필드 | 타입 | 설명 |
|---|---|---|
| value | integer | 예치 또는 투자 금액 |
| period | string | 가입 기간 |
| bank | string | 선호 은행 |
| country | string | 지역 |
{
"product_name_1": "추천 상품명",
"interest_rate_1": "금리",
"product_reason_1": "추천 이유",
"init_term_1": "가입 조건",
"period_1": "가입 기간",
"product_link_1": "상품 링크"
}수익률, 투자 기간, 원금보장 여부를 기반으로 예금, 적금, 펀드, 주식 상품을 추천합니다.
POST /api/invRecom{
"interestRate": 3.5,
"startDate": "2025-01-01",
"endDate": "2025-12-31",
"principalGuarantee": "Y"
}| 필드 | 타입 | 설명 |
|---|---|---|
| interestRate | float | 목표 수익률 |
| startDate | date | 투자 시작일 |
| endDate | date | 투자 종료일 |
| principalGuarantee | string | 원금보장 여부 |
[
{
"deposit_reason": "예금 추천 이유",
"deposit_keyword": "예금 관련 키워드",
"deposit_link": "예금 상품 링크",
"savings_reason": "적금 추천 이유",
"savings_keyword": "적금 관련 키워드",
"savings_link": "적금 상품 링크",
"fund_reason": "펀드 추천 이유",
"fund_keyword": "펀드 관련 키워드",
"fund_link": "펀드 상품 링크",
"stock_reason": "주식 추천 이유",
"stock_keyword": "주식 관련 키워드",
"stock_link": "주식 관련 링크"
}
]사용자의 결제이력, 부채수준, 신용이력, 신용거래빈도, 신규신용거래, 신용 사용률을 기반으로 신용등급을 분석합니다.
POST /api/getGrade{
"PH": "12",
"PH_1": 100,
"DL": 300,
"CHL": 2,
"CAF": 5,
"NCA": 1,
"CUR": 30.5
}| 필드 | 타입 | 설명 |
|---|---|---|
| PH | string | 결제이력 기간 |
| PH_1 | integer | 결제 금액 |
| DL | integer | 부채 수준 |
| CHL | integer | 신용이력 |
| CAF | integer | 신용거래빈도 |
| NCA | integer | 신규신용거래 |
| CUR | float | 신용 사용률 |
[
{
"result": "사용자님의 신용등급은 1등급입니다.",
"tip_1": "신용 관리를 위한 팁",
"tip_2": "추가 신용 관리 팁"
}
]MongoDB에 저장된 채팅 기록을 불러옵니다.
GET /api/chat[
{
"role": "user",
"content": "사용자 질문"
},
{
"role": "assistant",
"content": "AI 답변"
}
]개인 자산관리와 청년정책 관련 질문에 답변합니다.
POST /api/ask{
"question": "청년도약계좌 가입 조건 알려줘"
}{
"response": "AI 챗봇 답변"
}저장된 채팅 기록을 기반으로 관심 키워드를 추출합니다.
GET /api/key[
"일자리",
"주거",
"교육"
]현재 허용된 Origin은 다음과 같습니다.
http://localhost:5173
https://standard-front-jmhs.vercel.app
프론트엔드 주소가 변경되면 app/main.py의 CORS 설정을 수정해야 합니다.
금융상품 추천 기능은 rag/은행상품_설명.txt 파일을 읽어 문서를 분할하고, OpenAI Embeddings와 FAISS를 사용해 검색 기반 추천을 수행합니다.
기본 흐름은 다음과 같습니다.
금융상품 설명 문서 로드
→ 텍스트 청크 분할
→ OpenAI Embeddings 생성
→ FAISS Vector Store 생성
→ RetrievalQA로 관련 상품 검색
→ GPT 모델로 추천 결과 생성
OPENAI_API_KEY가 없으면 챗봇, 추천, 신용등급 분석 기능이 정상 동작하지 않습니다.MONGO_DB_URL이 없으면 채팅 기록 저장 및 조회 기능이 정상 동작하지 않습니다.rag/은행상품_설명.txt파일이 없으면 RAG 기반 상품 추천 기능이 동작하지 않습니다.__pycache__파일은 Git에 포함하지 않는 것이 좋습니다.- 금융상품, 투자, 신용등급 관련 답변은 참고용이며 실제 금융 의사결정 전 공식 기관 또는 전문가 확인이 필요합니다.
| 영역 | 설명 |
|---|---|
app/main.py |
FastAPI 엔드포인트 정의 |
prodRecom |
금융상품 추천 |
invRecom |
투자 추천 |
credRate |
신용등급 분석 |
chatbot |
자산관리/청년정책 챗봇 및 키워드 추출 |
rag |
추천에 사용할 금융상품 문서 |
별도 라이선스가 명시되어 있지 않습니다.