Metadata-Version: 2.4
Name: django-pyhub-rag
Version: 0.5.2
Summary: Django app library for RAG integration
Project-URL: Homepage, https://github.com/pyhub-kr/django-pyhub-rag
Project-URL: Documentation, https://ai.pyhub.kr
Project-URL: Repository, https://github.com/pyhub-kr/django-pyhub-rag
Project-URL: Issues, https://github.com/pyhub-kr/django-pyhub-rag/issues
Author-email: Chinseok Lee <me@pyhub.kr>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: django-environ
Requires-Dist: django-lifecycle
Requires-Dist: django>=4.0.0
Requires-Dist: openai
Requires-Dist: tiktoken
Provides-Extra: build
Requires-Dist: build; extra == 'build'
Requires-Dist: setuptools; extra == 'build'
Requires-Dist: twine; extra == 'build'
Requires-Dist: wheel; extra == 'build'
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: djlint; extra == 'dev'
Requires-Dist: isort; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: postgres
Requires-Dist: pgvector; extra == 'postgres'
Requires-Dist: psycopg2-binary; extra == 'postgres'
Provides-Extra: sqlite
Requires-Dist: numpy; extra == 'sqlite'
Requires-Dist: sqlite-vec; extra == 'sqlite'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-asyncio; extra == 'test'
Requires-Dist: pytest-django; extra == 'test'
Requires-Dist: pytest-testdox; extra == 'test'
Description-Content-Type: text/markdown

# django-pyhub-rag

> **Note**: 이 라이브러리는 현재 베타버전입니다. 기능이 변경될 수 있으며, 피드백을 환영합니다.

## 소개

`django-pyhub-rag`는 장고 프로젝트에서 RAG (Retrieval Augmented Generation) 기능을 쉽게 구현할 수 있도록 도와주는 라이브러리입니다.

PostgreSQL 데이터베이스의 `pgvector` 확장을 활용하여 유사도 기반 조회를 지원합니다.

* 참고: [pgvector 설치가이드](https://ai.pyhub.kr/setup/vector-stores/pgvector/)

## 주요 기능

`sqlite-vec`와 `pgvector` 라이브러리를 지원합니다.

* `SQLiteVectorDocument` 모델 상속을 통해 `sqlite-vec` 기반으로 텍스트 문서와 메타데이터, 임베딩 벡터를 저장하고, 유사 문서를 검색할 수 있습니다.
* `PGVectorDocument` 모델 상속을 통해 `pgvector` 기반으로 텍스트 문서와 메타데이터, 임베딩 벡터를 저장하고, 유사 문서를 검색할 수 있습니다.

```python
from pyhub.rag.models.sqlite import SQLiteVectorDocument


class TaxlawDocument(SQLiteVectorDocument):
    pass
```

## 설치 방법

1. 라이브러리 설치

`sqlite-vec` 확장을 사용하실 경우, 아래 라이브러리를 설치해주세요.

```
python -m pip install django-pyhub-rag sqlite-vec
```

`pgvector` 확장을 사용하실 경우, 아래 라이브러리를 설치해주세요.

```
python -m pip install django-pyhub-rag psycopg2-binary pgvector
```

2. `INSTALLED_APPS` 리스트에 추가:

```python
INSTALLED_APPS = [
    # ...
    "pyhub.rag",
]
```

3. 모델 상속 및 마이그레이션

## 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.

