English | 简体中文 · 中文文档 | English docs
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/afterglow-mark-dark.svg">
<img src="https://raw.githubusercontent.com/kldhsh123/Afterglow/HEAD/assets/brand/afterglow-mark.svg" alt="Afterglow" width="96" height="96">
</picture>
Afterglow
과거 대화의 따뜻함이 동반자 관계로 이어지게 하세요.
실제 채팅 기록으로부터 회상 가능한 관계 기억, 페르소나 및 표현 스타일을 구축하세요. RAG(검색 증강 생성), 페르소나 컨텍스트, 그리고 OpenAI와 호환되는 API가 익숙한 대화 패턴을 새로운 교류에 가져옵니다.
<p>
<a href="https://afterglow.kldhsh.top/">웹사이트</a> ·
<a href="https://kldhsh123.github.io/Afterglow/en/quickstart.html">빠른 시작</a> ·
<a href="#architecture">아키텍처</a> ·
<a href="https://kldhsh123.github.io/Afterglow/en/">문서</a> ·
<a href="https://discord.gg/CKrvgCyK4y">Discord</a> ·
<a href="https://qm.qq.com/cgi-bin/qm/qr?k=7rvmrvR100Is9aAp0ZsjmfiG7e0Cv6ZB&jump_from=webapi&authKey=mEN/epjvPHcT+Sb61/XO0Mi5egs2xJBhZm9Wm5MmgEWrpNa0ZOY3fzUf+pvqfijD">QQ 커뮤니티</a> ·
<a href="https://afdian.com/a/kldhsh123">스폰서</a> ·
<a href="https://github.com/kldhsh123/Afterglow/releases/latest">릴리스</a>
</p>
<p>
<a href="https://github.com/kldhsh123/Afterglow/releases/latest"><img alt="Release" src="https://img.shields.io/github/v/release/kldhsh123/Afterglow?style=flat-square&logo=github"></a>
<a href="https://github.com/kldhsh123/Afterglow/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/kldhsh123/Afterglow?style=flat-square"></a>
<a href="https://github.com/kldhsh123/Afterglow/commits/main"><img alt="Last commit" src="https://img.shields.io/github/last-commit/kldhsh123/Afterglow?style=flat-square"></a>
<a href="https://github.com/kldhsh123/Afterglow/issues"><img alt="Issues" src="https://img.shields.io/github/issues/kldhsh123/Afterglow?style=flat-square"></a>
</p>
[!NOTE]
경험 공유. Afterglow 사용 중 발견한 버그 보고, 배포 문제 및 경험담을 환영합니다. 저희 Discord 서버, QQ 그룹 330316577 또는 Discussions를 이용해 참여해주세요. 동의하시면, 고객님의 이야기는 프로젝트 웹사이트에 출처 표기(credited) 또는 익명으로 게시될 수 있습니다.
[!IMPORTANT]
Afterglow는 실제 사람을 생성하는 것이 아니라 **AI 연속성(AI continuations)**을 생성합니다. 필요한 허가를 얻고, 어떤 데이터가 모델 제공업체에게 도달하는지 이해하며, 생성된 텍스트와 실제 사람의 말을 구별해야 합니다. 사칭하거나 괴롭히거나 사기 치는 행위, 개인 채팅 내용을 게시하거나 생성된 답변을 누군가의 말인 것처럼 제시해서는 안 됩니다.
급성 슬픔, 우울증 또는 자해 위험을 겪고 있다면, 신뢰하는 사람과 전문적인 지원을 최우선으로 하세요. 책임 있는 사용 및 개인정보 보호(Responsible use and privacy)를 읽어보세요.
무엇인가요 (What it is)
Afterglow는 로컬에서 호스팅되는 AI 동반자입니다. 실제 채팅을 정리하고, 분할하며, 벡터화한 다음, 페르소나(persona), 생체 리듬 패턴(circadian patterns), 생활 상태(Life state) 및 관계 기억을 결합하여 채팅 모델에 관련 역사적 증거를 제공합니다.
모델 가중치를 미세 조정하거나 수정하지 않으며, 사람을 복원하거나 실제 관계를 대체하지 않습니다. 결과는 소스 채팅의 양과 개별성, 그리고 선택한 모델에 따라 달라집니다.
핵심 기능
| 기능 | 설명 |
|---|
| 여러 가져오기 소스 (Multiple import sources) | QQChatExporter, WeFlow, Douyin, Afterglow Chat, WhatsApp, Telegram 및 DiscordChatExporter; 다중 파일 프로필 집계 |
| ... | |
에코시스템
아키텍처
flowchart LR
User["사용자 / 외부 클라이언트"] --> API["Afterglow FastAPI<br/>OpenAI 호환 API"]
Frontend["프론트엔드<br/>채팅 / 진단 UI"] --> API
...
- 오프라인 가져오기 (Offline import): A/B/C 텍스트 인덱스, 페르소나/스타일/생체 리듬(circadian)/경량 선제적 프로필; 자동 관계 보고서 또는 선제적 AI 귀속 기능 없음.
- 명시적 분석 (Explicit analysis):
xuwen analyze를 사용하여 관계 보고서를 생성하며, 독립적인 analyze-proactive는 읽기 전용 품질 검사를 통해 선제적 경향을 산출합니다.
- 온라인 대화 (Online conversations): 다섯 개의 벡터 경로와 최근 라이브 피드(Recent Live feed)의 동시 검색/관계/생활 맥락, 이후 응답 정책 및 프롬프트 구성.
- 런타임 사용 (Runtime use): 타임라인은 보기 전용이며, 성격(personality)과 생활(Life) 기능은 독립적인 스위치가 있습니다. 선제적 일정 관리는 레거시 폴백을 가진 전용 보고서를 선호합니다.
- 로컬 지속성 (Local persistence): 벡터, 페르소나, 생체 리듬/생활 상태, 이미지 및 스티커는 기본적으로 로컬 저장소에 보관됩니다.
전체 아키텍처 가이드를 참조하세요.
빠른 시작 (Quick start)
[!TIP]
유지 관리자는 편리한 설정과 고급/실험적 기능을 위해 소스에서 실행할 것을 권장합니다.
Docker
mkdir -p ~/afterglow && cd ~/afterglow
curl -fsSLo compose.yaml \
https://raw.githubusercontent.com/kldhsh123/Afterglow/main/docker/compose.standalone.yaml
...
세션 설정 토큰을 로그에서 복사하여 http://localhost:8000/config/를 열고 8단계 과정을 완료하세요. 구성은 작업 디렉터리의 .env에, 데이터는 .data/에 저장됩니다. 그런 다음:
docker compose restart backend
마운트(mounts), 업그레이드 및 운영 관련 내용은 Docker 배포를 참조하세요.
소스에서 실행하기 (Run from source)
Python 3.12.x (>=3.12,<3.13)와 uv가 필요합니다. 마법사(wizard)로 시작하세요:
cd backend
uv sync --extra dev
XUWEN_LANGUAGE=en uv run uvicorn xuwen.chat_api.app:create_app --factory --reload
필수 구성이 누락되면 콘솔에 설정 토큰이 출력됩니다. http://127.0.0.1:8000/config/를 열고, ID(identities), 모델(models), 임포트(imports) 및 접근 비밀번호(access password)를 설정한 다음 다시 시작하세요.
XUWEN_LANGUAGE=en은 백엔드 기본값이며, zh-CN은 중국어를 선택합니다. 이는 재작성/폴백(rewrites/fallbacks)을 포함하여 시작 메시지와 능동적인 메시지를 제어합니다. CLI의 --language en / --language zh-CN 및 HTTP의 Accept-Language: en / Accept-Language: zh-CN이 자체 출력 범위를 덮어씁니다. 일반 채팅은 대화와 명시적 요청을 따릅니다. 내부 모델 지침(instructions)은 영어를 사용하며, 원본 증거(evidence) 및 사용자 지정 프롬프트는 보존됩니다.
채팅 UI, 마법사 및 문서는 독립적인 언어 선택기를 가지고 있습니다. 첫 사용 시에는 간체/번체 중국어 브라우저 환경을 위해 중국어가 선택되며, 그렇지 않은 경우 영어로 선택됩니다. 수동 선택은 기억됩니다. 마법사 제공업체 프리셋(provider presets)은 중국어 전용이며, 빈 영어 서비스는 저장된 구성을 덮어쓰지 않고 Google chat 및 OpenAI 임베딩/보조 모델을 제안합니다.
위의 소스 시작 접두사는 Bash / WSL 문법을 사용합니다. PowerShell 문법, 언어 우선순위, 프론트엔드 및 타사 클라이언트에 대한 내용은 빠른 시작을 참조하세요.
| Source | Format | Notes |
|---|
| QQChatExporter | JSON, chunked JSONL | 추천 QQ 가져오기 (Recommended QQ import) · 내보내기 튜토리얼 |
| ... | | |
| 다른 소스들은 Afterglow Chat v1로 변환할 수 있습니다. 장기적인 공개 지원을 위해서는 전용 가져오기 플러그인(dedicated ingestion plugin)이 선호됩니다. | | |
문서 (Documentation)
중국어 소스는 docs/wiki/에 있으며, 영어 소스는 docs/en/에 있습니다. GitHub Actions가 문서화 웹사이트를 빌드하며, 이전 Wiki는 생성된 호환성 미러로 남아있습니다.
커뮤니티 및 기여
Discord · 토론 · 이슈 · QQ 그룹 330316577 · 감사의 말
이슈와 풀 리퀘스트를 환영합니다. 프로젝트 수정 전에 기여 가이드를 읽어보시고, 영어 개발 가이드에서 설정, 플러그인 및 검사에 대해 다루고 있습니다.
라이선스
AGPL-3.0-or-later
<div align="center">
<sub style="font-size: 1em;">Afterglow가 따뜻함을 보존하는 데 도움이 되었다면, 별점(Star)을 남겨주세요.</sub>
</div>