Boxcars adalah permata yang memungkinkan Anda membuat sistem baru dengan komposabilitas AI, menggunakan berbagai konsep seperti LLM (OpenAi, Anthropic, GPT4ALL), pencarian, SQL (dengan dukungan rekaman dan rekaman aktif), Rails Active Record, pencarian vektor dan banyak lagi. Ini bahkan dapat diperluas dengan konsep Anda juga (termasuk konsep Anda).
Permata ini terinspirasi oleh Langchain Perpustakaan Python yang populer. Namun, kami ingin memberikan putaran ruby dan membuatnya lebih ramah pengguna bagi pemula untuk memulai.
Semua konsep ini ada dalam modul bernama Boxcars:
Boxcars.engine .Boxcars::train saat Anda ingin membangun kereta.Boxcar.configuration.default_engine ). Kami memiliki mesin untuk Claude API Anthropic bernama Boxcars::Anthropic , dan mesin lain untuk GPT bernama Boxcars::Gpt4allEng .Saat ini, sistem kami dirancang untuk individu yang sudah memiliki hak administratif untuk proyek mereka. Kemungkinan untuk memanipulasi petunjuk sistem untuk melakukan tindakan jahat, tetapi jika Anda sudah memiliki akses administratif, Anda dapat melakukan tindakan seperti itu tanpa memerlukan gerbong gerbong di tempat pertama.
Catatan: Kami secara aktif mencari cara untuk meningkatkan kemampuan sistem kami untuk mengidentifikasi dan mencegah upaya jahat terjadi. Jika Anda memiliki saran atau rekomendasi, jangan ragu untuk membaginya dengan kami dengan menemukan masalah yang ada atau membuat yang baru dan memberi kami umpan balik Anda.
Tambahkan baris ini ke gemfile aplikasi Anda:
gem 'boxcars'Dan kemudian mengeksekusi:
$ bundle install
Atau instal sendiri sebagai:
$ gem install boxcars
Kami akan segera menambahkan lebih banyak contoh, tetapi di sini ada pasangan untuk memulai. Pertama, Anda harus mengatur variabel lingkungan Anda untuk layanan seperti OpenAi, Anthropic, dan Google Serp (openai_access_token, antropic_api_key, serpapi_api_key) dll. Jika Anda lebih suka tidak mengatur variabel -variabel ini di lingkungan Anda, Anda dapat meneruskannya langsung ke API.
Dalam contoh di bawah ini, kami menambahkan satu permata Ruby untuk memuat lingkungan di baris pertama, tetapi tergantung pada apa yang Anda inginkan, Anda mungkin tidak membutuhkan ini.
require "dotenv/load"
require "boxcars"Catatan: Jika Anda ingin mencoba contoh di bawah ini, jalankan perintah ini dan kemudian tempel dalam segmen kode yang menarik:
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?"Menghasilkan:
> 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
Perhatikan bahwa karena OpenAI saat ini merupakan mesin yang paling banyak digunakan, jika Anda tidak lewat di mesin, itu akan default seperti yang diharapkan. Jadi, ini adalah versi yang setara lebih pendek dari skrip di atas:
# 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?" Anda dapat mengubah default_engine dengan Boxcars::configuration.default_engine = NewDefaultEngine
Inilah yang kami miliki sejauh ini, tapi tolong pasang PR dengan ide -ide baru Anda.
# 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?"Menghasilkan:
> 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
Lihat buku catatan Jupyter ini untuk contoh lebih lanjut.
Untuk gerbong Swagger, lihat buku catatan Jupyter ini.
Untuk penyimpanan dan pencarian vektor sederhana, lihat buku catatan Jupyter ini.
Perhatikan, beberapa orang yang kami ajak bicara tidak tahu bahwa Anda dapat menjalankan notebook Ruby Jupyter. Anda bisa.
Jika Anda menggunakan ini di aplikasi Rails, atau konfigurasikan Boxcars.configuration.logger = your_logger , logging akan masuk ke file log Anda.
Juga, jika Anda mengatur bendera ini: Boxcars.configuration.log_prompts = true Prompt aktual yang diserahkan ke mesin yang terhubung akan dicatat. Ini tidak aktif secara default karena sangat bertele -tele, tetapi berguna jika Anda menuntut debugging.
Kalau tidak, kami mencetak ke Standard Out.
Setelah memeriksa repo, jalankan bin/setup untuk menginstal dependensi. Kemudian, jalankan rake spec untuk menjalankan tes. Anda juga dapat menjalankan bin/console untuk prompt interaktif yang akan memungkinkan Anda untuk bereksperimen.
Untuk menginstal permata ini ke mesin lokal Anda, jalankan bundle exec rake install . Untuk merilis versi baru, perbarui nomor versi di version.rb , dan kemudian jalankan bundle exec rake release , yang akan membuat tag Git untuk versi, Push Git Commits dan Tag yang dibuat, dan tekan file .gem ke rubygems.org.
Laporan bug dan permintaan tarik dipersilakan di GitHub di https://github.com/boxcarsai/boxcars. Proyek ini dimaksudkan untuk menjadi ruang yang aman dan ramah untuk kolaborasi, dan kontributor diharapkan untuk mematuhi kode etik.
Permata tersedia sebagai open source di bawah ketentuan lisensi MIT.
Semua orang yang berinteraksi di basis kode proyek Boxcars, pelacak masalah, ruang obrolan, dan milis diharapkan mengikuti kode etik.