BoxCars هي جوهرة تمكنك من إنشاء أنظمة جديدة مع إمكانية Composability AI ، باستخدام مفاهيم مختلفة مثل LLMS (Openai ، Anthropic ، GPT4All) ، البحث ، SQL (مع كل من Squel and Active Record Support) ، Rails Active Record ، Supect Search والمزيد. يمكن أن يمتد هذا مع مفاهيمك أيضًا (بما في ذلك مفاهيمك).
استلهمت هذه الأحجار الكريمة من مكتبة Python الشهيرة Langchain. ومع ذلك ، أردنا أن نمنحها تدورًا وتجعلها أكثر سهولة في الاستخدام للمبتدئين للبدء.
كل هذه المفاهيم موجودة في وحدة تسمى Boxcars:
Boxcars.engine .Boxcars::train عندما تريد بناء قطار.Boxcar.configuration.default_engine ). لدينا محرك لـ Claude API من الإنسان المسمى Boxcars::Anthropic ، ومحرك آخر لـ GPT يدعى Boxcars::Gpt4allEng .حاليًا ، تم تصميم نظامنا للأفراد الذين يمتلكون بالفعل امتيازات إدارية لمشروعهم. من المحتمل أن يكون من الممكن معالجة مطالبات النظام بتنفيذ إجراءات ضارة ، ولكن إذا كان لديك وصول إداري بالفعل ، فيمكنك تنفيذ هذه الإجراءات دون الحاجة إلى عربات الصناديق في المقام الأول.
ملاحظة: نحن نبحث بنشاط عن طرق لتحسين قدرة نظامنا على تحديد ومنع حدوث أي محاولات شائكة ومنعها. إذا كان لديك أي اقتراحات أو توصيات ، فلا تتردد في مشاركتها معنا إما عن طريق العثور على مشكلة موجودة أو إنشاء مشكلة جديدة وتزويدنا بتعليقاتك.
أضف هذا السطر إلى Gemfile في التطبيق الخاص بك:
gem 'boxcars'ثم تنفذ:
$ bundle install
أو تثبيته بنفسك على النحو التالي:
$ gem install boxcars
سنضيف المزيد من الأمثلة قريبًا ، ولكن إليك زوجين لتبدأ. أولاً ، ستحتاج إلى إعداد متغيرات البيئة الخاصة بك لخدمات مثل Openai و Anthropic و Google SERP (OpenAI_ACCESS_TOKEN ، ANTROMERIC_API_KEY ، SERPAPI_API_KEY) وما إلى ذلك إذا كنت تفضل عدم تعيين هذه المتغيرات في بيئتك ، يمكنك تمريرها مباشرة إلى واجهة برمجة التطبيقات.
في الأمثلة أدناه ، أضفنا جوهرة روبي واحدة لتحميل البيئة في السطر الأول ، ولكن بناءً على ما تريد ، قد لا تحتاج إلى ذلك.
require "dotenv/load"
require "boxcars"ملاحظة: إذا كنت ترغب في تجربة الأمثلة أدناه ، فقم بتشغيل هذا الأمر ثم الصق في شرائح المدونة ذات الاهتمام:
irb -r dotenv/load -r boxcars
# or if you prefer local repository
irb -r dotenv/load -r ./lib/boxcars # run the calculator
engine = Boxcars :: Openai . new ( max_tokens : 256 )
calc = Boxcars :: Calculator . new ( engine : engine )
puts calc . run "what is pi to the fourth power divided by 22.1?"ينتج:
> Entering Calculator#run
what is pi to the fourth power divided by 22.1?
RubyREPL: puts (Math::PI**4)/22.1
Answer: 4.407651178009159
{"status":"ok","answer":"4.407651178009159","explanation":"Answer: 4.407651178009159","code":"puts (Math::PI**4)/22.1"}
< Exiting Calculator#run
4.407651178009159
لاحظ أنه نظرًا لأن Openai هو المحرك الأكثر استخدامًا حاليًا ، إذا لم تمر في محرك ما ، فسيكون ذلك افتراضيًا كما هو متوقع. لذلك ، هذا هو النسخة الأقصر المكافئة من البرنامج النصي أعلاه:
# run the calculator
calc = Boxcars :: Calculator . new # just use the default Engine
puts calc . run "what is pi to the fourth power divided by 22.1?" يمكنك تغيير default_engine باستخدام Boxcars::configuration.default_engine = NewDefaultEngine
إليك ما لدينا حتى الآن ، ولكن يرجى وضع العلاقات العامة مع أفكارك الجديدة.
# run a Train for a calculator, and search using default Engine
boxcars = [ Boxcars :: Calculator . new , Boxcars :: GoogleSearch . new ]
train = Boxcars . train . new ( boxcars : boxcars )
train . run "What is pi times the square root of the average temperature in Austin TX in January?"ينتج:
> Entering Zero Shot#run
What is pi times the square root of the average temperature in Austin TX in January?
Thought: We need to find the average temperature in Austin TX in January and then multiply it by pi and the square root of the average temperature. We can use a search engine to find the average temperature in Austin TX in January and a calculator to perform the multiplication.
Question: Average temperature in Austin TX in January
Answer: January Weather in Austin Texas, United States. Daily high temperatures increase by 2°F, from 62°F to 64°F, rarely falling below 45°F or exceeding 76° ...
Observation: January Weather in Austin Texas, United States. Daily high temperatures increase by 2°F, from 62°F to 64°F, rarely falling below 45°F or exceeding 76° ...
Thought: We have found the average temperature in Austin TX in January, which is 64°F. Now we can use a calculator to perform the multiplication.
> Entering Calculator#run
pi * sqrt(64)
RubyREPL: puts(Math::PI * Math.sqrt(64))
Answer: 25.132741228718345
{"status":"ok","answer":"25.132741228718345","explanation":"Answer: 25.132741228718345","code":"puts(Math::PI * Math.sqrt(64))"}
< Exiting Calculator#run
Observation: 25.132741228718345
We have the final answer.
Final Answer: 25.132741228718345
Next Actions:
1. What is the average temperature in Austin TX in July?
2. What is the value of pi to 10 decimal places?
3. What is the square root of the average temperature in Miami FL in January?
< Exiting Zero Shot#run
شاهد دفتر الملاحظات Jupyter لمزيد من الأمثلة.
للاطلاع على Swagger Boxcar ، راجع دفتر Jupyter هذا.
للاطلاع على التخزين والبحث في المتجهات البسيطة ، راجع دفتر Jupyter هذا.
لاحظ أن بعض الأشخاص الذين تحدثنا معهم لم يعرفوا أنه يمكنك تشغيل دفاتر Ruby Jupyter. أنت تستطيع.
إذا كنت تستخدم هذا في تطبيق Rails ، أو تكوين Boxcars.configuration.logger = your_logger ، سينتقل التسجيل إلى ملف السجل الخاص بك.
أيضًا ، إذا قمت بتعيين هذه العلامة: Boxcars.configuration.log_prompts = true سيتم تسجيل المطالبات الفعلية التي تم تسليمها إلى المحرك المتصاعد. هذا متوقف عن الافتراضي لأنه أمر محترم للغاية ، ولكنه مفيد إذا كنت تتصحيح مطالبات.
خلاف ذلك ، نحن نطبع إلى Standard Out.
بعد التحقق من الريبو ، قم بتشغيل bin/setup لتثبيت التبعيات. ثم ، قم بتشغيل rake spec لتشغيل الاختبارات. يمكنك أيضًا تشغيل bin/console للحصول على مطالبة تفاعلية تتيح لك التجربة.
لتثبيت هذه الأحجار الكريمة على جهازك المحلي ، قم بتشغيل bundle exec rake install . لإصدار إصدار جديد ، قم بتحديث رقم الإصدار في version.rb ، ثم قم بتشغيل bundle exec rake release ، والذي سيقوم بإنشاء علامة GIT للإصدار ، و Push Git Commits والعلامة التي تم إنشاؤها ، ودفع ملف .gem إلى rubygems.org.
يتم الترحيب بتقارير الأخطاء وطلبات السحب على Github على https://github.com/boxcarsai/boxcars. يهدف هذا المشروع إلى أن يكون مساحة آمنة ومرحبة للتعاون ، ومن المتوقع أن يلتزم المساهمون بمدونة قواعد السلوك.
الجوهرة متوفرة كمصدر مفتوح بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا.
من المتوقع أن يتبع كل من يتفاعلون في قواعد الكود في مشروع BoxCars ، ومتتبعات المشكلات ، وغرف الدردشة والقوائم البريدية مدونة قواعد السلوك.