Spaces:
Sleeping
Sleeping
File size: 8,020 Bytes
f534f56 45d0783 f534f56 45d0783 | 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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | ---
title: 물魂(물건의 혼) - 사물 페르소나 생성기
emoji: 🧸
colorFrom: indigo
colorTo: blue
sdk: gradio
sdk_version: 5.30.0
app_file: app.py
pinned: false
---
# 물魂 (물건의 혼) - 사물 페르소나 생성기
사물에 인격을 부여하여 대화할 수 있는 페르소나 생성 및 테스트 도구입니다.
## 프로젝트 개요
물魂(물건의 혼) 프로젝트는 일상 사물에 독특한 성격과 개성을 부여하여 사용자와 대화할 수 있는 페르소나를 생성하는 연구 도구입니다. 이 도구는 사물의 물리적 특성에서 성격적 특성을 도출하고, 매력적인 페르소나를 구축하여 대화 상호작용을 탐구하는 데 중점을 둡니다.
## 주요 기능
- **이미지 기반 분석**: 사물 이미지를 분석하여 물리적 특성에서 성격 특성을 추론
- **직관적인 페르소나 생성**: 슬라이더, 선택 버튼 등 다양한 UI 요소를 통한 손쉬운 페르소나 설계
- **LLM 기반 페르소나 강화**: Google Gemini API를 활용한 페르소나 특성 강화 및 세부화
- **대화 시뮬레이션**: 생성된 페르소나와 대화 테스트 및 상호작용
- **페르소나 라이브러리**: 생성된 페르소나 저장 및 관리
- **대화 기록 및 분석**: 대화 내용 저장, 통계 분석, JSON 형식 내보내기
## 사용 기술
- **Gradio**: 직관적인 웹 UI 구현
- **Google Gemini API**: LLM 기반 페르소나 생성 및 대화 응답 생성
- **PIL/Pillow**: 이미지 처리 및 분석
- **Python**: 백엔드 로직 구현
## 설치 방법
### 1. 필수 조건
- Python 3.9 이상
- Google AI Studio API 키 (Gemini Pro 모델 접근 권한)
### 2. 설치 과정
1. 저장소 클론:
```bash
git clone https://github.com/your-username/memory_tag_mvp.git
cd memory_tag_mvp/연구/persona_creator
```
2. 가상 환경 생성 및 활성화:
```bash
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
```
3. 의존성 패키지 설치:
```bash
pip install -r requirements.txt
```
4. 환경 변수 설정:
`.env` 파일을 프로젝트 루트 디렉토리에 생성하고 다음 내용 추가:
```
GEMINI_API_KEY=your_api_key_here
```
또는 시스템 환경 변수로 설정:
```bash
# Linux/Mac
export GEMINI_API_KEY=your_api_key_here
# Windows (PowerShell)
$env:GEMINI_API_KEY="your_api_key_here"
# Windows (Command Prompt)
set GEMINI_API_KEY=your_api_key_here
```
> ⚠️ **중요**: Google AI Studio에서 Gemini API 키를 발급받아야 합니다. 발급 방법은 [Google AI Studio](https://ai.google.dev/) 웹사이트를 참조하세요.
5. 아이콘 파일 준비:
```
assets/icons/persona_avatar.png
```
경로에 페르소나 아바타 이미지 파일(PNG 형식)을 추가하세요. 아이콘 이미지는 원형이나 정사각형 형태의 512x512 픽셀 크기를 권장합니다.
아이콘 파일이 없는 경우 다음 명령어로 임시 아이콘을 생성할 수 있습니다:
```python
from PIL import Image, ImageDraw
import os
# 디렉토리 확인
if not os.path.exists("assets/icons"):
os.makedirs("assets/icons", exist_ok=True)
# 기본 아이콘 생성
img = Image.new('RGBA', (512, 512), (79, 70, 229, 255)) # 인디고 배경
draw = ImageDraw.Draw(img)
draw.ellipse((100, 100, 412, 412), fill=(255, 255, 255, 255)) # 흰색 원
img.save('assets/icons/persona_avatar.png')
```
### 3. 실행 방법
```bash
python app.py
```
웹 브라우저에서 `http://localhost:7860`으로 접속
## 사용 방법
### 페르소나 생성
1. **사물 정보 입력**: 이름, 유형, 나이/사용 기간, 설명을 입력합니다.
2. **이미지 분석(선택사항)**: 사물 이미지를 업로드하여 물리적 특성 기반의 성격 특성을 자동으로 추출합니다.
3. **성격 특성 조정**: 슬라이더를 사용하여 온기, 능력, 신뢰성 등의 성격 특성을 조정합니다.
4. **소통 방식 설정**: 대화 스타일, 유머 유형, 말투 패턴을 설정합니다.
5. **관계 성향 설정**: 애착 스타일, 관계 깊이 선호도, 초기 태도를 선택합니다.
6. **페르소나 생성**: "페르소나 생성하기" 버튼을 클릭하여 LLM을 통해 페르소나를 강화하고 생성합니다.
### 대화 테스트
1. **대화 시작**: 생성된 페르소나를 선택하고 "대화 시작하기" 버튼을 클릭합니다.
2. **메시지 입력**: 텍스트 입력창에 메시지를 입력하고 전송합니다.
3. **대화 내용 저장**: 대화가 끝나면 "대화 내용 저장" 버튼으로 대화를 JSON 형식으로 저장합니다.
### 페르소나 라이브러리
1. **저장된 페르소나 탐색**: 생성한 모든 페르소나를 확인하고 관리합니다.
2. **페르소나 불러오기**: 저장된 페르소나를 에디터로 불러와 수정하거나 대화 테스트로 불러와 대화할 수 있습니다.
## 프로젝트 구조
```
persona_creator/
├── app.py # 메인 그라디오 애플리케이션
├── requirements.txt # 파이썬 패키지 의존성
├── packages.txt # 시스템 패키지 (HF Spaces용)
├── README.md # 사용 설명서
├── modules/
│ ├── image_analyzer.py # 이미지 분석 및 특성 추출
│ ├── question_generator.py # 동적 질문 생성 엔진
│ ├── persona_generator.py # 페르소나 생성 엔진
│ ├── chat_engine.py # 대화 처리 및 기록
│ ├── gemini_handler.py # 제미나이 API 연동
│ ├── prompt_templates.py # LLM 프롬프트 템플릿
│ └── data_manager.py # 데이터 저장 및 분석
├── data/
│ ├── trait_mappings/ # 물리적-성격 특성 매핑 데이터
│ │ ├── shape_traits.json # 형태-성격 매핑 규칙
│ │ ├── color_traits.json # 색상-성격 매핑 규칙
│ │ └── material_traits.json # 재질-성격 매핑 규칙
│ ├── personality_templates/ # 카테고리별 기본 성격 템플릿
│ ├── conversation_logs/ # 대화 기록 저장소
│ └── user_personas/ # 사용자 생성 페르소나
├── styles/
│ └── custom.css # UI 커스텀 스타일
└── assets/
├── examples/ # 예시 이미지
└── icons/ # UI 아이콘
└── persona_avatar.png # 페르소나 아바타 이미지
```
## 허깅페이스 스페이스 배포
이 프로젝트는 허깅페이스 스페이스에 쉽게 배포할 수 있습니다:
1. 허깅페이스 계정 생성 및 로그인
2. 새 스페이스 생성 (Gradio App 선택)
3. 저장소 URL 연결 또는 파일 업로드
4. 환경 변수에 `GEMINI_API_KEY` 설정
5. 스페이스 설정에서 Python 패키지와 시스템 패키지가 올바르게 설치되는지 확인
## 연구 용도
이 프로젝트는 다음과 같은 연구 목적으로 활용됩니다:
1. **사물 인격화의 심리적 영향**: 사물에 인격을 부여했을 때 사용자의 인식과 상호작용 패턴 연구
2. **매력적 캐릭터 요소 분석**: 어떤 성격 특성 조합이 가장 매력적이고 상호작용하기 쉬운지 탐구
3. **관계 형성 패턴**: 페르소나와의 지속적 상호작용에서 형성되는 관계의 특성 연구
4. **물리적-성격적 특성 매핑**: 사물의 물리적 특성이 어떻게 성격적 특성으로 인지되는지 분석
## 제한사항
- 현재 버전은 연구 및 개발 목적으로 제공됩니다.
- Gemini API 키가 필요하며, API 사용량 제한에 따라 기능이 제한될 수 있습니다.
- 이미지 분석 기능은 현재 더미 분석을 제공하며, 향후 더 정교한 컴퓨터 비전 모델로 대체될 예정입니다.
## 라이센스
이 프로젝트는 MIT 라이센스 하에 배포됩니다. |