GPT4All LLM을 사용하여 로컬에서 코드를 분석하세요. 필요한 파일을 모두 다운로드한 후에는 데이터가 공유되지 않으며 인터넷 연결도 필요하지 않습니다. Eunomia는 imartinez의 독창적인 privateGPT 프로젝트를 기반으로 합니다. Eunomia는 제공된 소스 코드 파일만을 분석하고 귀하의 쿼리에 기반한 답변을 제공하는 것으로 제한됩니다.
새로운 Django 프로젝트로
C++ 프로젝트 사용
법학대학원 | 다운로드 | 백엔드 | 크기 |
---|---|---|---|
? ggml-gpt4all-l13b-snoozy.bin | 다운로드 | 야마 | 8.0GB |
?️ ggml-nous-gpt4-vicuna-13b.bin | 다운로드 | 야마 | 8.0GB |
? ggml-gpt4all-j-v1.3-groovy.bin | 다운로드 | gptj | 3.7GB |
랑 | 확대 |
---|---|
파이썬 | .py |
C++ | .cpp & .hpp |
자바 | .java & .jar |
JS | .js |
루비 | .rb |
녹 | .rs |
가다 | .가다 |
스칼라 | .scala 및 .sc |
스위프트 | .스위프트 |
PHP | .php |
유액 | .tex |
다음은 Langchain에서 현재 지원하는 모든 언어가 포함된 Langchain의 언어 클래스 소스 코드에 대한 링크입니다.
Eunomia는 Chroma를 사용하여 실행되는 디렉터리에 파일이 포함된 벡터 저장소를 만든 다음 langchain을 사용하여 선택한 LLM에 벡터 저장소를 공급합니다. 현재 ChatGPT에 접근할 수 없기 때문에 GPT4All 모델만 지원됩니다.
먼저 다음을 사용하여 폴더에 저장소를 복제합니다.
https://github.com/Ngz91/Eunomia.git
리포지토리가 복제된 후에는 pip install -r requirements.txt
실행하여 요구사항.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
스크립트를 처음 실행할 때 임베딩 모델 자체를 다운로드하려면 인터넷 연결이 필요합니다. 수집을 다시 실행할 때는 인터넷 연결이 필요하지 않습니다.
모든 것이 올바르게 진행되면 다음과 같은 내용이 표시됩니다.
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++ 컴파일러를 설치해야 할 수도 있습니다.
Windows 10/11에 C++ 컴파일러를 설치하려면 다음 단계를 따르세요.
gcc
구성 요소를 선택합니다. Intel 하드웨어(M1 아님)가 있는 Mac을 실행할 때 clang: 오류가 발생할 수 있습니다. clang 컴파일러는 pip 설치 중에 '-march=native'를 지원하지 않습니다 .
그렇다면 pip 설치 중에 Archflags를 설정하십시오. 예: ARCHFLAGS="-arch x86_64" pip3 install -r 요구 사항.txt
이는 LLM 및 벡터 임베딩을 사용한 질문 답변을 위한 완전 비공개 솔루션의 타당성을 검증하기 위한 테스트 프로젝트입니다. 프로덕션 준비가 되지 않았으며 프로덕션에 사용할 수 없습니다. 모델 선택은 성능이 아닌 개인 정보 보호를 위해 최적화되었습니다. 그러나 성능을 향상시키기 위해 다양한 모델과 벡터스토어를 사용하는 것이 가능합니다.