⁉️؟ GoLC
بناء تطبيقات Go باستخدام LLMs من خلال قابلية التركيب
GoLC هو مشروع مبتكر مستوحى بشكل كبير من مشروع LangChain، ويهدف إلى بناء تطبيقات باستخدام نماذج اللغات الكبيرة (LLMs) من خلال الاستفادة من مفهوم قابلية التركيب. فهو يوفر إطارًا يمكّن المطورين من إنشاء ودمج التطبيقات المستندة إلى LLM بسلاسة. من خلال مبادئ قابلية التركيب، تسمح GoLC بالبناء المعياري للمكونات المستندة إلى LLM، مما يوفر المرونة وقابلية التوسع لتطوير تطبيقات معالجة اللغة القوية. من خلال الاستفادة من قدرات LLM واحتضان قابلية التركيب، توفر GoLC فرصًا جديدة لنظام Golang البيئي لتطوير تطبيقات معالجة اللغة الطبيعية.
سمات
تقدم GoLC مجموعة من الميزات لتعزيز تطوير تطبيقات معالجة اللغة:
- ؟ LLMs والمطالبات: تعمل GoLC على تبسيط إدارة المطالبات وتحسينها وتوفر واجهة عامة للعمل مع نماذج اللغات الكبيرة (LLMs). وهذا يبسط استخدام LLMs في تطبيقاتك.
- ؟ السلاسل: يتيح GoLC إنشاء تسلسلات من المكالمات إلى LLMs أو المرافق الأخرى. فهو يوفر واجهة موحدة للسلاسل، مما يسمح بالتكامل السلس مع الأدوات المختلفة. بالإضافة إلى ذلك، تقدم GoLC سلاسل شاملة مُصممة مسبقًا لسيناريوهات التطبيقات الشائعة، مما يوفر وقت وجهد التطوير.
- الجيل المعزز للاسترجاع (RAG): يدعم GoLC أنواعًا محددة من السلاسل التي تتفاعل مع مصادر البيانات. تتيح هذه الوظيفة مهام مثل تلخيص النص المطول والإجابة على الأسئلة بناءً على مجموعات بيانات محددة. باستخدام GoLC، يمكنك الاستفادة من إمكانات RAG لتحسين تطبيقات معالجة اللغة لديك.
- ؟ الوكلاء: تعمل GoLC على تمكين إنشاء وكلاء يستفيدون من LLMs لاتخاذ قرارات مستنيرة واتخاذ الإجراءات ومراقبة النتائج والتكرار حتى الانتهاء. من خلال دمج الوكلاء في تطبيقاتك، يمكنك تعزيز ذكائهم وقدرتهم على التكيف.
- ؟ الذاكرة: تتضمن GoLC وظيفة الذاكرة التي تسهل استمرار الحالة بين مكالمات السلسلة أو الوكيل. تسمح هذه الميزة لتطبيقاتك بالحفاظ على السياق والاحتفاظ بالمعلومات المهمة خلال مسار المعالجة. توفر GoLC واجهة ذاكرة موحدة بالإضافة إلى مجموعة مختارة من تطبيقات الذاكرة لتحقيق المرونة.
- ؟ التقييم: تعمل GoLC على تبسيط عملية تقييم النماذج التوليدية، والتي يصعب تقييمها تقليديًا باستخدام المقاييس التقليدية. من خلال استخدام نماذج اللغة نفسها للتقييم، توفر GoLC نهجًا جديدًا لتقييم أداء النماذج التوليدية.
- ؟ الإشراف: تتضمن GoLC وظائف الإشراف الأساسية لتعزيز أمان وملاءمة تطبيقات معالجة اللغة. يتضمن ذلك الكشف الفوري عن الحقن والكشف عن معلومات التعريف الشخصية (PII) وتنقيحها وتحديد المحتوى السام والمزيد.
- ؟ معالجة المستندات: يوفر GoLC إمكانات شاملة لمعالجة المستندات، بما في ذلك التحميل والتحويل والضغط. فهو يوفر مجموعة متنوعة من الأدوات لتبسيط المهام المتعلقة بالمستندات، مما يجعله حلاً مثاليًا لتطبيقات معالجة اللغة التي تركز على المستندات.
تثبيت
استخدم وحدات Go لتضمين golc في مشروعك:
go get github.com/hupe1980/golc
الاستخدام
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/hupe1980/golc"
"github.com/hupe1980/golc/chain"
"github.com/hupe1980/golc/model/chatmodel"
)
func main () {
openai , err := chatmodel . NewOpenAI ( os . Getenv ( "OPENAI_API_KEY" ))
if err != nil {
log . Fatal ( err )
}
conversationChain , err := chain . NewConversation ( openai )
if err != nil {
log . Fatal ( err )
}
ctx := context . Background ()
result1 , err := golc . SimpleCall ( ctx , conversationChain , "What year was Einstein born?" )
if err != nil {
log . Fatal ( err )
}
fmt . Println ( result1 )
result2 , err := golc . SimpleCall ( ctx , conversationChain , "Multiply the year by 3." )
if err != nil {
log . Fatal ( err )
}
fmt . Println ( result2 )
}
الإخراج:
Einstein was born in 1879.
1879 multiplied by 3 equals 5637.
لمزيد من الأمثلة على الاستخدام، راجع الأمثلة.
المساهمة
المساهمات هي موضع ترحيب! لا تتردد في فتح مشكلة أو إرسال طلب سحب لأية تحسينات أو ميزات جديدة ترغب في رؤيتها.
مراجع
- https://github.com/langchain-ai/langchain/
- https://www.promptingguide.ai/
رخصة
هذا المشروع مرخص بموجب ترخيص MIT. راجع ملف الترخيص للحصول على التفاصيل.