البحر
محرك بحث رمز لعمر الذكاء الاصطناعي. SeaGoat هي أداة بحث محلية تعمل على الاستفادة من التضمينات المتجهات لتمكينك من البحث في قاعدة الشفرة بشكل دلالي.
من أجل تثبيت SeaGoat ، تحتاج إلى تثبيت التبعيات التالية بالفعل على جهاز الكمبيوتر الخاص بك:
عند تثبيت bat
، يتم استخدامه لعرض النتائج طالما تم تمكين اللون. عند استخدام Seagoat كجزء من خط أنابيب ، يتم استخدام تنسيق إخراج خط Grep. عند تمكين اللون ، ولكن لا يتم تثبيت bat
، ستقوم SeaGoat بتسليط الضوء على الإخراج باستخدام Pygments. يوصى باستخدام bat
.
لتثبيت SeaGoat باستخدام pipx
، استخدم الأمر التالي:
pipx install seagoat
يجب أن تعمل على أي كمبيوتر محمول لائق.
تم تصميم SeaGoat للعمل على Linux ( تم اختباره ✅) و MacOS (تم اختباره جزئيًا ومساعدة ) و Windows ( المساعدة المطلوبة ).
من أجل استخدام Seagoat في مشروعك ، يجب عليك بدء خادم SeaGoat باستخدام الأمر التالي:
seagoat-server start /path/to/your/repo
إذا كان لديك الخادم يعمل ، يمكنك ببساطة استخدام أمر gt
أو seagoat
للاستعلام عن مستودعك. على سبيل المثال:
gt " Where are the numbers rounded "
يمكنك أيضًا استخدام تعبيرات منتظمة في استفساراتك ، على سبيل المثال
gt " function calc_.* that deals with taxes "
يمكنك إيقاف خادم التشغيل باستخدام الأمر التالي:
seagoat-server stop /path/to/your/repo
يمكن تخصيص Seagoat على احتياجاتك من خلال ملفات تكوين YAML ، سواء على الصعيد العالمي أو على وجه التحديد مع ملف .seagoat.yml
. على سبيل المثال:
# .seagoat.yml
server :
port : 31134 # Specify server port
تحقق من الوثائق لمزيد من التفاصيل!
متطلبات :
بعد استنساخ المستودع ، قم بتثبيت التبعيات باستخدام الأمر التالي:
poetry install
poetry run ptw
poetry run pytest . --testmon
poetry run pytest .
يمكنك اختبار أي أمر Seagoat يدويًا في بيئة التنمية المحلية. على سبيل المثال لاختبار إصدار تطوير seagoat-server
، يمكنك تشغيل:
poetry run seagoat-server start ~ /path/an/example/repository
النقاط في هذه الأسئلة الشائعة هي مؤشرات على كيفية عمل Seagoat ، ولكنها ليست عقدًا قانونيًا. SeaGoat مرخصة بموجب ترخيص مفتوح المصدر ، وإذا كنت تشكك في الآثار المترتبة على الخصوصية/السلامة/إلخ من Seagoat ، فأنت مرحب بك لفحص الكود المصدري ، أو رفع مخاوفك ، أو إنشاء طلب سحب لإصلاح مشكلة.
لا يعتمد Seagoat على واجهات برمجة تطبيقات الطرف الثالث أو أي واجهات برمجة تطبيقات عن بُعد وتنفيذ جميع الوظائف محليًا باستخدام خادم SeaGoat الذي يمكنك تشغيله على جهازك الخاص.
بدلاً من الاعتماد على واجهات برمجة التطبيقات أو "الاتصال بـ chatgpt" ، فإنه يستخدم قاعدة بيانات المتجه تسمى chromadb ، مع محرك تضمين متجه محلي معطل الافتراضي.
بصرف النظر عن ذلك ، يستخدم Seagoat أيضًا RipGrep ، وهو محرك بحث كود يعتمد على التعبير العادي من أجل مزود المباريات المعتادة على التعبير/الكلمات الرئيسية بالإضافة إلى المباريات "المستندة إلى AI".
على الرغم من أن الإصدار الحالي من Seagoat لا يرسل بياناتك إلى الخوادم البعيدة ، فقد يكون من الممكن أن تكون هناك ميزات اختيارية في المستقبل ، إذا كان يمكن الحصول على أي تحسن آخر من ذلك.
يحتاج Seagoat إلى خادم من أجل توفير استجابة سريعة. يعتمد SeaGoat اعتمادًا كبيرًا على تضمينات المتجهات وقواعد بيانات المتجهات ، والتي لا يمكن استبدالها في الوقت الحالي بالهندسة المعمارية التي تعالج الملفات أثناء الطيران.
تجدر الإشارة إلى أنك قادر على تشغيل خادم Seagoat محليًا تمامًا ، ويعمل حتى لو لم يكن لديك اتصال بالإنترنت. لا تتطلب منك حالة الاستخدام هذه مشاركة البيانات مع خادم بعيد ، فأنت قادر على استخدام خادم Seagoat الخاص بك محليًا ، وإن كان من الممكن أيضًا تشغيل خادم SeaGoat والسماح لأجهزة الكمبيوتر الأخرى بالاتصال به ، إذا كنت ترغب في ذلك.
إذا كنت قلقًا بشأن الآثار الأخلاقية المتمثلة في استخدام أدوات الذكاء الاصطناعى ، ضع في اعتبارك أن Seagoat ليس مولدًا رمزًا ولكنه محرك بحث رمز ، وبالتالي فإنه لا يخلق عملًا مشتقًا من الذكاء الاصطناعي.
ومع ذلك ، يتم استخدام نموذج اللغة لإنشاء تضمينات متجه. في الوقت الحالي ، يستخدم Seagoat النموذج الافتراضي لـ Chromadb لحساب التضمينات المتجهات ، وأنا لست على دراية بأن هذا مصدر قلق أخلاقي.
حاليًا يتم ترميز Seagoat إلى ملفات معالجة فقط في التنسيقات التالية:
*.txt
)*.md
)*.py
)*.c
، *.h
)*.cpp
، *.cc
، *.cxx
، *.hpp
)*.ts
، *.tsx
)*.js
، *.jsx
)*.html
)*.go
)*.java
)*.php
)*.rb
)نظرًا لأن معالجة الملفات للمستودعات الكبيرة يمكن أن تستغرق وقتًا طويلاً ، فقد تم تصميم SeaGoat للسماح لك باستخدام جهاز الكمبيوتر الخاص بك أثناء معالجة الملفات . إنه خيار تصميم مقصود لتجنب حظر/إبطاء جهاز الكمبيوتر الخاص بك.
لا يؤثر قرار التصميم هذا على أداء الاستعلامات.
بالمناسبة ، يمكنك استخدام SeaGoat للاستعلام عن مستودعك أثناء معالجة ملفاتك! عندما تقوم بإجراء استعلام ، ولا تتم معالجة الملفات بعد ، فسوف تتلقى تحذيرًا بتقدير لدقة نتائجك. أيضًا ، سيتم عرض نتائج تعبير/بحث كامل عن البحث عن البداية من البداية!
ترميز الحرف المفضل هو UTF-8. يجب أن تعمل معظم ترميزات الشخصيات الأخرى أيضًا. يتم دعم الملفات النصية فقط ، يتجاهل SeaGoat الملفات الثنائية.
حيث يعتمد Seagoat على قواعد البيانات وذاكرة التخزين المؤقت على نظام التشغيل الخاص بك. لراحتك ، يمكنك استخدام الأمر seagoat-server server-info
لمعرفة مكان تخزين هذه الملفات على نظامك.
نعم ، إذا كنت ترغب في استخدام SeaGoat دون الحاجة إلى تشغيل الخادم على نفس الكمبيوتر ، يمكنك ببساطة استضافة خادم SeaGat على جهاز كمبيوتر مختلف أو في السحابة ، وتكوين أمر seagoat
/ gt
للاتصال بهذا الخادم البعيد من خلال الإنترنت.
ضع في اعتبارك أن Seagoat نفسها لا تفرض أي أمان لأنه مصمم بشكل أساسي للتشغيل محليًا. إذا كان لديك رمز خاص لا ترغب في تسربه ، فسيتعين عليك التأكد من أن الأشخاص الموثوق بهم فقط يمكنهم الوصول إلى خادم Seagoat. يمكن القيام بذلك عن طريق إتاحة ذلك فقط من خلال VPN التي يمكن لزملائك فقط الوصول.
يتجاهل Seagoat بالفعل جميع الملفات/الدلائل التي تم تجاهلها في .gitignore
. إذا كنت ترغب في تجاهل ملفات إضافية ولكن الاحتفاظ بها في GIT ، فيمكنك استخدام سمة ignorePatterns
من تكوين الخادم. يتعلم أكثر