PrivateGPT: различия между версиями

Материал из DZWIKI
Перейти к навигации Перейти к поиску
 
(не показаны 2 промежуточные версии этого же участника)
Строка 73: Строка 73:
Ingestion complete! You can now run privateGPT.py to query your documents
Ingestion complete! You can now run privateGPT.py to query your documents
</syntaxhighlight>
</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.


== См. также ==
== См. также ==
Строка 79: Строка 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.

См. также

Ссылки

Статьи: