Проанализируйте свой код локально с помощью GPT4All LLM. После загрузки всех необходимых файлов данные не передаются и подключение к Интернету не требуется. Eunomia основана на оригинальном проекте imartinez PrivateGPT. Eunomia ограничивается анализом предоставленных файлов исходного кода и дает вам ответ на основе вашего запроса.
С новым проектом Django
С проектом C++
Магистр права | Скачать | Бэкэнд | Размер |
---|---|---|---|
? ggml-gpt4all-l13b-snoozy.bin | Скачать | лама | 8,0 ГБ |
?️ ggml-nous-gpt4-vicuna-13b.bin | Скачать | лама | 8,0 ГБ |
? ggml-gpt4all-j-v1.3-groovy.bin | Скачать | gptj | 3,7 ГБ |
Ланг | Расширение |
---|---|
Питон | .py |
С++ | .cpp и .hpp |
Ява | .java и .jar |
JS | .js |
Руби | .rb |
Ржавчина | .rs |
ИДТИ | .идти |
Скала | .scala и .sc |
Быстрый | .быстрый |
PHP | .php |
Латекс | .tex |
Вот ссылка на исходный код языкового класса Langchain со всеми языками, которые в настоящее время поддерживаются Langchain.
Eunomia использует Chroma для создания векторного хранилища с файлами в каталоге, в котором он запускается, а затем использует langchain для передачи векторного хранилища в LLM по вашему выбору. На данный момент поддерживаются только модели GPT4All, поскольку у меня нет доступа к ChatGPT.
Сначала клонируйте репозиторий в папку, используя:
https://github.com/Ngz91/Eunomia.git
После клонирования репозитория вам необходимо установить зависимости в файле require.txt, запустив pip install -r requirements.txt
(я бы рекомендовал вам сделать это в среде Python).
Затем загрузите одну из поддерживаемых моделей в разделе «Протестированные модели» и сохраните ее в папке внутри папки Eunomia.
Переименуйте example.env
в .env
и отредактируйте переменные соответствующим образом.
PERSIST_DIRECTORY: is the folder you want your vectorstore in
LLM: Path to your GPT4All or LlamaCpp supported LLM
BACKEND: Backend for your model (refer to models tested section)
EMBEDDINGS_MODEL_NAME: SentenceTransformers embeddings model name (see https://www.sbert.net/docs/pretrained_models.html)
MODEL_N_CTX: Maximum token limit for the LLM model
TARGET_SOURCE_CHUNKS: The amount of chunks (sources) that will be used to answer a question
IGNORE_FOLDERS: List of folders to ignore
ВАЖНО. Запустить Eunomia можно двумя способами: один — использовать python path/to/Eunomia.py arg1
, а другой — создать пакетный скрипт и поместить его в папку Python Scripts (в Windows он находится в папке UserAppDAta). LocalProgamsPythonPythonxxxScripts) и напрямую запускаем eunomia arg1
. По характеру работы Eunomia рекомендуется создать пакетный скрипт и запустить его в папке, в которой вы хотите проанализировать код. Вы можете использовать файл example.bat
в качестве примера для самостоятельной настройки командного файла, но не забудьте отредактировать пути python pathtoEunomia.py %1
чтобы они указывали на путь, где Eunomia.py находится на вашем компьютере. С этого момента я буду использовать пакетный скрипт в качестве примера.
Активируйте среду Python (если вы ее создали), перейдите в папку, где находится ваш код, и вставьте файлы для создания векторного хранилища, которое выбранный LLM будет использовать в качестве контекста для ответов на ваши вопросы, выполнив:
eunomia ingest
При первом запуске сценария потребуется подключение к Интернету для загрузки самой модели внедрения. Вам не понадобится подключение к Интернету, когда вы снова запустите Ingest.
Вы увидите что-то подобное, если все прошло правильно:
Creating new vectorstore
Loading documents from D:FolderSomeTest
Loading new documents: 100%|██████████████████████████████| 7/7 [00:00<?, ?it/s]
Loaded 7 new documents from D:Projectstests
Split into 14 chunks of text (max. 1000 tokens each)
Creating embeddings. May take some minutes...
Vectorstore created, you can now run 'eunomia start' to use the LLM to interact with your code!
После создания векторного хранилища вы можете запустить Eunomia, выполнив:
eunomia start
В первый раз это займет несколько секунд. Как только загрузка модели закончится, вас встретит такое сообщение, если модель была загружена успешно:
Found model file.
gptj_model_load: loading model from 'models\ggml-gpt4all-j-v1.3-groovy.bin' - please wait ...
gptj_model_load: n_vocab = 50400
gptj_model_load: n_ctx = 2048
gptj_model_load: n_embd = 4096
gptj_model_load: n_head = 16
gptj_model_load: n_layer = 28
gptj_model_load: n_rot = 64
gptj_model_load: f16 = 2
gptj_model_load: ggml ctx size = 5401.45 MB
gptj_model_load: kv self size = 896.00 MB
gptj_model_load: ................................... done
gptj_model_load: model size = 3609.38 MB / num tensors = 285
______ __ __ __ __ ______ __ __ __ ______
/ ___ / / / "-. / __ / "-./ / / __
__ _ \ -. \ / \ -./ \ \ __
_____\ _____\ _\"_\ _____\ _ _\ _\ _ _
/_____/ /_____/ /_/ /_/ /_____/ /_/ /_/ /_/ /_//_/
Enter a query:
Примечание. Если при загрузке LLM вы столкнулись с ошибками, убедитесь, что вы используете правильную серверную часть для используемого LLM. Кроме того, некоторые ответы могут быть неполными или неверными. Во время тестирования я обнаружил, что это можно улучшить, попробовав разные размеры фрагментов, перекрытие фрагментов, n_ctx и target_source_chunks. Вы можете использовать другие модели, чтобы проверить, лучше ли их ответ, чем протестированные до сих пор. Не забудьте поискать, как вы можете использовать эти модели с langchain и их соответствующими бэкэндами.
Чтобы использовать это программное обеспечение, у вас должен быть установлен Python 3.10 или более поздней версии. Более ранние версии Python не компилируются.
Если вы столкнулись с ошибкой при построении колеса в процессе pip install
, возможно, вам придется установить на свой компьютер компилятор C++.
Чтобы установить компилятор C++ в Windows 10/11, выполните следующие действия:
gcc
. При запуске Mac с оборудованием Intel (не M1) вы можете столкнуться с ошибкой clang:: компилятор clang не поддерживает '-march=native' во время установки pip.
Если да, установите архифлаги во время установки pip. например: ARCHFLAGS="-arch x86_64" pip3 install -r require.txt
Это тестовый проект для проверки возможности полностью частного решения для ответов на вопросы с использованием LLM и векторных вложений. Он не готов к производству и не предназначен для использования в производстве. Выбор моделей оптимизирован не для производительности, а для конфиденциальности; но для повышения производительности можно использовать разные модели и векторные хранилища.