File size: 2,953 Bytes
f9bf20f
5243776
 
 
 
f9bf20f
5243776
ad0422b
5243776
 
 
 
 
f9bf20f
 
5243776
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
---
title:  맞춤형 미드저니 프롬프트 생성기 API
emoji: 🤖🎨✨
colorFrom: indigo
colorTo: green
sdk: docker
app_port: 7860 # Dockerfile에서 EXPOSE한 포트와 일치
python_version: 3.9.13  # <--- 이 줄을 추가해보세요!
# hardware: cpu-upgrade # 기본 CPU (무료)
# hardware: t4-small # 예시: T4 Small GPU (유료) - LLM 실행에 권장
# secrets: # .env 파일 대신 여기에 시크릿 설정
#   - OPENAI_API_KEY # 예시
#   - HF_TOKEN # Hugging Face Hub private 모델 접근 시 필요할 수 있음
---

## 🚀 프로젝트 개요
이 Hugging Face Space는 사용자의 한국어 입력을 기반으로 Midjourney 이미지 생성용 영어 프롬프트를 만들어주는 API를 제공합니다.
자체 파인튜닝된 언어 모델(`sdgsjlfnjkl/kanana-2.1b-full-v12`)과 LangChain 프레임워크, ChromaDB 벡터 스토어, Wikipedia 컨텍스트 검색 기능을 활용합니다.

## ⚙️ API 엔드포인트

-   **`GET /`**: API 루트. 간단한 환영 메시지를 반환합니다.
-   **`GET /health`**: 서버 및 주요 구성 요소의 상태를 확인합니다.
-   **`POST /generate`**: 핵심 프롬프트 생성 엔드포인트.
    -   Request Body (`application/json`):
        ```json
        {
          "user_input": "푸른 밤하늘 아래 반짝이는 호수와 그 위에 떠 있는 작은 배 한 척"
        }
        ```
    -   Response Body (`application/json`):
        ```json
        {
          "generated_prompt": "A small boat floating on a sparkling lake under a blue night sky, detailed, serene, photorealistic.",
          "processing_time_seconds": 5.82,
          "error_message": null
        }
        ```
-   **`POST /reset_memory`**: 서버에 저장된 대화 기록과 위키 검색 기록을 초기화합니다. (모든 사용자에게 영향)

## 📚 API 문서
이 Space의 URL 뒤에 `/docs`를 추가하면 (예: `https://your-username-your-space-name.hf.space/docs`) Swagger UI를 통해 API를 테스트하고 문서를 확인할 수 있습니다.

## 🛠️ 주요 기술 스택
-   FastAPI
-   LangChain (LCEL, `ConversationBufferMemory`, `HuggingFaceEmbeddings`, `Chroma`)
-   Transformers (`AutoModelForCausalLM`, `AutoTokenizer`)
-   Sentence Transformers
-   Konlpy (Okt)
-   WikipediaAPI
-   Docker

## ⚠️ 주의사항
-   **초기 로딩 시간**: API 서버 시작 시 다수의 AI 모델을 로딩하므로, Space가 "Running" 상태가 된 후에도 실제 API 응답까지 시간이 걸릴 수 있습니다. Logs 탭에서 "모든 모델 및 설정 로딩 완료" 메시지를 확인하세요.
-   **공유 메모리**: 현재 구현에서 대화 기록과 위키 검색 기록은 모든 API 사용자 간에 공유됩니다.
-   **하드웨어**: `sdgsjlfnjkl/kanana-2.1b-full-v12` 모델의 크기와 복잡성에 따라 GPU 하드웨어가 필요할 수 있습니다. README.md 상단의 `hardware` 설정을 조정하세요.

''