PrivateGPT: различия между версиями
Dzmuh (обсуждение | вклад) |
Dzmuh (обсуждение | вклад) (→Ссылки) |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 33: | Строка 33: | ||
Примечание: из-за того, что модель загружает вложения SentenceTransformers, при первом запуске скрипта потребуется подключение к Интернету. | Примечание: из-за того, что модель загружает вложения SentenceTransformers, при первом запуске скрипта потребуется подключение к Интернету. | ||
== Как собрать свой датасет для PrivateGPT == | |||
Поместите все файлы с нужной вам информацией в каталог source_documents. | |||
Вот, какие расширения поддерживает PrivateGPT: | |||
* .csv: CSV, | |||
* .docx: Word Document, | |||
* .doc: Word Document, | |||
* .enex: EverNote, | |||
* .eml: Email, | |||
* .epub: EPub, | |||
* .html: HTML File, | |||
* .md: Markdown, | |||
* .msg: Outlook Message, | |||
* .odt: Open Document Text, | |||
* .pdf: Portable Document Format (PDF), | |||
* .pptx : PowerPoint Document, | |||
* .ppt : PowerPoint Document, | |||
* .txt: Text file (UTF-8), | |||
Выполните следующую команду, чтобы загрузить все данные в модель. | |||
<syntaxhighlight lang="bash"> | |||
python ingest.py | |||
</syntaxhighlight> | |||
Вывод должен выглядеть так: | |||
<syntaxhighlight lang="bash"> | |||
Creating new vectorstore | |||
Loading documents from source_documents | |||
Loading new documents: 100%|██████████████████████| 1/1 [00:01<00:00, 1.73s/it] | |||
Loaded 1 new documents from source_documents | |||
Split into 90 chunks of text (max. 500 tokens each) | |||
Creating embeddings. May take some minutes... | |||
Using embedded DuckDB with persistence: data will be stored in: db | |||
Ingestion complete! You can now run privateGPT.py to query your documents | |||
</syntaxhighlight> | |||
Эта команда создаст папку db, содержащую локальный векторный магазин. | |||
Создание папки займет около 20-30 секунд на один документ, в зависимости от размера документа. | |||
Вы можете загрузить столько документов, сколько захотите, и все они будут собраны в локальной базе данных вложений. | |||
Если вы хотите очистить базу данных, просто удалите папку db. | |||
Примечание. Во время загрузки данных, они не покидают вашу локальную среду. Подгружать документы в датасет можно без подключения к Интернету. Подключение к Интернету потребуется только во время первого запуска модели, чтобы они смогла скачать модель встраивания. | |||
== Как задавать вопросы к своим документам == | |||
Чтобы задать вопрос, сперва выполните команду: | |||
<syntaxhighlight lang="bash"> | |||
python privateGPT.py | |||
</syntaxhighlight> | |||
Затем подождите, когда скрипт потребует ввода запроса. | |||
<syntaxhighlight lang="bash"> | |||
> Enter a query: | |||
</syntaxhighlight> | |||
Введите промпт и нажмите Enter. | |||
Нужно будет подождать 20-30 секунд (в зависимости от мощности вашего ПК), пока LLM обработает промпт и подготовит ответ. После этого он выведет ответ и 4 источника из ваших документов, которые он использовал. | |||
После ответа вы можете задать другой вопрос без повторного запуска скрипта. Просто снова дождитесь подсказки о вводе промпта. | |||
Чтобы завершить работу скрипта, введите exit. | |||
== См. также == | == См. также == | ||
| Строка 39: | Строка 111: | ||
== Ссылки == | == Ссылки == | ||
* {{github|imartinez|privateGPT}} | * {{github|imartinez|privateGPT}} | ||
Статьи: | |||
* {{cite web | |||
|url = https://tproger.ru/articles/privategpt-yazykovaya-model-dlya-raboty-s-dokumentami | |||
|title = PrivateGPT — модель для работы с личным набором данных | |||
|lang = ru | |||
|date = 2023-05-30 | |||
|access-date = 2024-01-15 | |||
|website = TProger | |||
|archive-url = https://web.archive.org/web/20230616141305/https://tproger.ru/articles/privategpt-yazykovaya-model-dlya-raboty-s-dokumentami/ | |||
|archive-date = 2023-06-16 | |||
}} | |||
[[Категория:Категоризовать]] | [[Категория:Категоризовать]] | ||
[[Категория:Программное обеспечение по алфавиту]] | [[Категория:Программное обеспечение по алфавиту]] | ||
Текущая версия от 17:43, 15 января 2024
PrivateGPT - это инструмент для задавания вопросов к документам без подключения к интернету, используя мощь LLMs, с полной конфиденциальностью, так как данные не покидают локальную среду выполнения, позволяющий загружать документы и задавать вопросы без подключения к интернету, разработанный с использованием LangChain, GPT4All, LlamaCpp, Chroma и SentenceTransformers.
Как работает PrivateGPT
Используя локальные модели LangChain, вы можете запустить всю модель на своём ПК, и данные не будут покидать вашу среду. При этом разработчики гарантируют хорошую производительность.
ingest.py использует инструменты LangChain для анализа документа и локального создания вложений с помощью HuggingFaceEmbeddings (SentenceTransformers). Затем Он сохраняет результат в локальной векторной базе данных, используя хранилище векторов Chroma.
privateGPT.py использует локальный LLM на основе GPT4All-J или LlamaCpp для анализа вопросов и генерации ответов. Контекст для ответов извлекается из локального хранилища векторов с помощью поиска по сходству.
Устанавливаем PrivateGPT
Чтобы подготовить среду для запуска, сперва нужно установить все зависимости:
pip3 install -r requirements.txt
Затем загрузите модель LLM и поместите её в нужный вам каталог.
По умолчанию используется языковая модель ggml-gpt4all-j-v1.3-groovy.bin. Если вы хотите использовать другую модель, совместимую с GPT4All-J, просто загрузите её и укажите в своем файле .env.
После загрузки модели, переименуйте файл example.env в .env и отредактируйте содержимое файла по примеру ниже.
MODEL_TYPE: supports LlamaCpp or GPT4All
PERSIST_DIRECTORY: is the folder you want your vectorstore in
MODEL_PATH: Path to your GPT4All or LlamaCpp supported LLM
MODEL_N_CTX: Maximum token limit for the LLM model
EMBEDDINGS_MODEL_NAME: SentenceTransformers embeddings model name (see https://www.sbert.net/docs/pretrained_models.html)
TARGET_SOURCE_CHUNKS: The amount of chunks (sources) that will be used to answer a question
Примечание: из-за того, что модель загружает вложения SentenceTransformers, при первом запуске скрипта потребуется подключение к Интернету.
Как собрать свой датасет для PrivateGPT
Поместите все файлы с нужной вам информацией в каталог source_documents.
Вот, какие расширения поддерживает PrivateGPT:
- .csv: CSV,
- .docx: Word Document,
- .doc: Word Document,
- .enex: EverNote,
- .eml: Email,
- .epub: EPub,
- .html: HTML File,
- .md: Markdown,
- .msg: Outlook Message,
- .odt: Open Document Text,
- .pdf: Portable Document Format (PDF),
- .pptx : PowerPoint Document,
- .ppt : PowerPoint Document,
- .txt: Text file (UTF-8),
Выполните следующую команду, чтобы загрузить все данные в модель.
python ingest.py
Вывод должен выглядеть так:
Creating new vectorstore
Loading documents from source_documents
Loading new documents: 100%|██████████████████████| 1/1 [00:01<00:00, 1.73s/it]
Loaded 1 new documents from source_documents
Split into 90 chunks of text (max. 500 tokens each)
Creating embeddings. May take some minutes...
Using embedded DuckDB with persistence: data will be stored in: db
Ingestion complete! You can now run privateGPT.py to query your documents
Эта команда создаст папку db, содержащую локальный векторный магазин.
Создание папки займет около 20-30 секунд на один документ, в зависимости от размера документа.
Вы можете загрузить столько документов, сколько захотите, и все они будут собраны в локальной базе данных вложений.
Если вы хотите очистить базу данных, просто удалите папку db.
Примечание. Во время загрузки данных, они не покидают вашу локальную среду. Подгружать документы в датасет можно без подключения к Интернету. Подключение к Интернету потребуется только во время первого запуска модели, чтобы они смогла скачать модель встраивания.
Как задавать вопросы к своим документам
Чтобы задать вопрос, сперва выполните команду:
python privateGPT.py
Затем подождите, когда скрипт потребует ввода запроса.
> Enter a query:
Введите промпт и нажмите Enter.
Нужно будет подождать 20-30 секунд (в зависимости от мощности вашего ПК), пока LLM обработает промпт и подготовит ответ. После этого он выведет ответ и 4 источника из ваших документов, которые он использовал.
После ответа вы можете задать другой вопрос без повторного запуска скрипта. Просто снова дождитесь подсказки о вводе промпта.
Чтобы завершить работу скрипта, введите exit.
См. также
Ссылки
- Проект PrivateGPT на сайте GitHub
Статьи:
- PrivateGPT — модель для работы с личным набором данных. TProger (30 мая 2023). Дата обращения: 15 января 2024. Архивировано 16 июня 2023 года.