วิเคราะห์โค้ดของคุณภายในเครื่องโดยใช้ GPT4All LLM ไม่มีการแชร์ข้อมูลและไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตหลังจากดาวน์โหลดไฟล์ที่จำเป็นทั้งหมดแล้ว Eunomia มีพื้นฐานมาจากโครงการ privateGPT ดั้งเดิมของ imartinez 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 กิกะไบต์ |
หรั่ง | ส่วนขยาย |
---|---|
หลาม | .ไพ |
ซี++ | .cpp & .hpp |
ชวา | .java และ .jar |
จส | .js |
ทับทิม | .rb |
สนิม | .อาร์เอส |
ไป | .ไป |
สกาล่า | .สกาลา & .sc |
สวิฟท์ | .สวิฟท์ |
PHP | .php |
ลาเท็กซ์ | .เท็กซ์ |
นี่คือลิงค์ไปยังซอร์สโค้ดของคลาสภาษาของ Langchain พร้อมภาษาทั้งหมดที่ Langchain รองรับในปัจจุบัน
Eunomia ใช้ Chroma เพื่อสร้าง vectorstore ด้วยไฟล์ในไดเร็กทอรีที่รัน จากนั้นใช้ langchain เพื่อป้อน vectorstore ไปยัง LLM ที่คุณเลือก ณ ตอนนี้ รองรับเฉพาะรุ่น GPT4All เท่านั้น เนื่องจากฉันไม่สามารถเข้าถึง ChatGPT ได้
ขั้นแรกให้โคลนที่เก็บในโฟลเดอร์โดยใช้:
https://github.com/Ngz91/Eunomia.git
หลังจากโคลนพื้นที่เก็บข้อมูลแล้ว คุณจะต้องติดตั้งการขึ้นต่อกันในไฟล์ Requirement.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 ของคุณ (หากคุณสร้างขึ้น) ย้ายไปยังโฟลเดอร์ที่มีรหัสของคุณ และนำเข้าไฟล์เพื่อสร้าง vectorstore ที่ 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!
เมื่อสร้าง vectorstore แล้ว คุณสามารถเริ่ม 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) คุณอาจพบ ข้อผิดพลาด: ข้อผิดพลาด: คอมไพเลอร์เสียงดังกราวไม่รองรับ '-march=native' ระหว่างการติดตั้ง pip
หากเป็นเช่นนั้น ให้ตั้งค่า Archflags ของคุณระหว่างการติดตั้ง pip เช่น: ARCHFLAGS="-arch x86_64" pip3 ติดตั้ง -r needs.txt
นี่คือโครงการทดสอบเพื่อตรวจสอบความเป็นไปได้ของโซลูชันส่วนตัวเต็มรูปแบบสำหรับการตอบคำถามโดยใช้ LLM และการฝังเวกเตอร์ ยังไม่พร้อมสำหรับการผลิต และไม่ได้มีไว้สำหรับใช้ในการผลิต การเลือกรุ่นไม่ได้รับการปรับให้เหมาะสมเพื่อประสิทธิภาพ แต่เพื่อความเป็นส่วนตัว แต่เป็นไปได้ที่จะใช้โมเดลและ vectorstores ที่แตกต่างกันเพื่อปรับปรุงประสิทธิภาพ