Skip to content
This repository was archived by the owner on Jun 11, 2026. It is now read-only.

2025-Standard/standard_ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Standard AI

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.md

실행 준비

1. 저장소 클론

git clone https://github.com/2025-Standard/standard_ai.git
cd standard_ai

2. 가상환경 생성

python -m venv .venv

Linux / macOS:

source .venv/bin/activate

Windows PowerShell:

.venv\Scripts\Activate.ps1

3. 패키지 설치

pip install -r requirements.txt

Dockerfile 기준으로 추가 설치되는 주요 패키지는 다음과 같습니다.

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 실행을 지원합니다.

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

API 명세

1. 금융상품 추천

사용자의 가입 기간, 선호 은행, 지역 정보를 기반으로 금융상품을 추천합니다.

POST /api/prodRecom

Request Body

{
  "value": 1000000,
  "period": "1년",
  "bank": "KB국민은행",
  "country": "경북"
}
필드 타입 설명
value integer 예치 또는 투자 금액
period string 가입 기간
bank string 선호 은행
country string 지역

Response

{
  "product_name_1": "추천 상품명",
  "interest_rate_1": "금리",
  "product_reason_1": "추천 이유",
  "init_term_1": "가입 조건",
  "period_1": "가입 기간",
  "product_link_1": "상품 링크"
}

2. 투자 추천

수익률, 투자 기간, 원금보장 여부를 기반으로 예금, 적금, 펀드, 주식 상품을 추천합니다.

POST /api/invRecom

Request Body

{
  "interestRate": 3.5,
  "startDate": "2025-01-01",
  "endDate": "2025-12-31",
  "principalGuarantee": "Y"
}
필드 타입 설명
interestRate float 목표 수익률
startDate date 투자 시작일
endDate date 투자 종료일
principalGuarantee string 원금보장 여부

Response

[
  {
    "deposit_reason": "예금 추천 이유",
    "deposit_keyword": "예금 관련 키워드",
    "deposit_link": "예금 상품 링크",
    "savings_reason": "적금 추천 이유",
    "savings_keyword": "적금 관련 키워드",
    "savings_link": "적금 상품 링크",
    "fund_reason": "펀드 추천 이유",
    "fund_keyword": "펀드 관련 키워드",
    "fund_link": "펀드 상품 링크",
    "stock_reason": "주식 추천 이유",
    "stock_keyword": "주식 관련 키워드",
    "stock_link": "주식 관련 링크"
  }
]

3. 신용등급 분석

사용자의 결제이력, 부채수준, 신용이력, 신용거래빈도, 신규신용거래, 신용 사용률을 기반으로 신용등급을 분석합니다.

POST /api/getGrade

Request Body

{
  "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 신용 사용률

Response

[
  {
    "result": "사용자님의 신용등급은 1등급입니다.",
    "tip_1": "신용 관리를 위한 팁",
    "tip_2": "추가 신용 관리 팁"
  }
]

4. 채팅 기록 조회

MongoDB에 저장된 채팅 기록을 불러옵니다.

GET /api/chat

Response

[
  {
    "role": "user",
    "content": "사용자 질문"
  },
  {
    "role": "assistant",
    "content": "AI 답변"
  }
]

5. 챗봇 질문

개인 자산관리와 청년정책 관련 질문에 답변합니다.

POST /api/ask

Request Body

{
  "question": "청년도약계좌 가입 조건 알려줘"
}

Response

{
  "response": "AI 챗봇 답변"
}

6. 키워드 추출

저장된 채팅 기록을 기반으로 관심 키워드를 추출합니다.

GET /api/key

Response

[
  "일자리",
  "주거",
  "교육"
]

CORS 설정

현재 허용된 Origin은 다음과 같습니다.

http://localhost:5173
https://standard-front-jmhs.vercel.app

프론트엔드 주소가 변경되면 app/main.py의 CORS 설정을 수정해야 합니다.

RAG 구성

금융상품 추천 기능은 rag/은행상품_설명.txt 파일을 읽어 문서를 분할하고, OpenAI Embeddings와 FAISS를 사용해 검색 기반 추천을 수행합니다.

기본 흐름은 다음과 같습니다.

금융상품 설명 문서 로드
→ 텍스트 청크 분할
→ OpenAI Embeddings 생성
→ FAISS Vector Store 생성
→ RetrievalQA로 관련 상품 검색
→ GPT 모델로 추천 결과 생성

주의사항

  • OPENAI_API_KEY가 없으면 챗봇, 추천, 신용등급 분석 기능이 정상 동작하지 않습니다.
  • MONGO_DB_URL이 없으면 채팅 기록 저장 및 조회 기능이 정상 동작하지 않습니다.
  • rag/은행상품_설명.txt 파일이 없으면 RAG 기반 상품 추천 기능이 동작하지 않습니다.
  • __pycache__ 파일은 Git에 포함하지 않는 것이 좋습니다.
  • 금융상품, 투자, 신용등급 관련 답변은 참고용이며 실제 금융 의사결정 전 공식 기관 또는 전문가 확인이 필요합니다.

Repository 역할

영역 설명
app/main.py FastAPI 엔드포인트 정의
prodRecom 금융상품 추천
invRecom 투자 추천
credRate 신용등급 분석
chatbot 자산관리/청년정책 챗봇 및 키워드 추출
rag 추천에 사용할 금융상품 문서

License

별도 라이선스가 명시되어 있지 않습니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors