BoxCars เป็นอัญมณีที่ช่วยให้คุณสร้างระบบใหม่ด้วย AI composability โดยใช้แนวคิดต่าง ๆ เช่น LLMS (OpenAI, มานุษยวิทยา, GPT4ALL), Search, SQL (พร้อมทั้งภาคต่อและการสนับสนุนบันทึกที่ใช้งานอยู่), Rails Active Record, การค้นหาเวกเตอร์ สิ่งนี้สามารถขยายได้ด้วยแนวคิดของคุณเช่นกัน (รวมถึงแนวคิดของคุณ)
อัญมณีนี้ได้รับแรงบันดาลใจจากห้องสมุด Python ยอดนิยม Langchain อย่างไรก็ตามเราต้องการให้มันหมุนทับทิมและทำให้เป็นมิตรกับผู้ใช้มากขึ้นสำหรับผู้เริ่มต้นที่จะเริ่มต้น
แนวคิดทั้งหมดเหล่านี้อยู่ในโมดูลชื่อ BoxCars:
Boxcars.engineBoxcars::train เมื่อคุณต้องการสร้างรถไฟBoxcar.configuration.default_engine ) เรามีเครื่องยนต์สำหรับ Claude API ของมานุษยวิทยาชื่อ Boxcars::Anthropic และเครื่องยนต์อื่นสำหรับ GPT ชื่อ Boxcars::Gpt4allEngปัจจุบันระบบของเราได้รับการออกแบบมาสำหรับบุคคลที่มีสิทธิพิเศษด้านการบริหารสำหรับโครงการของพวกเขา มีความเป็นไปได้ที่จะจัดการกับพรอมต์ของระบบเพื่อดำเนินการที่เป็นอันตราย แต่ถ้าคุณมีการเข้าถึงผู้ดูแลระบบอยู่แล้วคุณสามารถดำเนินการดังกล่าวได้โดยไม่ต้องใช้ boxcars ตั้งแต่แรก
หมายเหตุ: เรากำลังค้นหาวิธีการปรับปรุงความสามารถของระบบของเราในการระบุและป้องกันความพยายามที่ชั่วร้ายใด ๆ จากการเกิดขึ้น หากคุณมีข้อเสนอแนะหรือคำแนะนำใด ๆ โปรดอย่าลังเลที่จะแบ่งปันกับเราโดยการค้นหาปัญหาที่มีอยู่หรือสร้างข้อเสนอใหม่และให้ความคิดเห็นของคุณแก่เรา
เพิ่มบรรทัดนี้ใน Gemfile ของแอปพลิเคชันของคุณ:
gem 'boxcars'แล้วดำเนินการ:
$ bundle install
หรือติดตั้งด้วยตัวเองเป็น:
$ gem install boxcars
เราจะเพิ่มตัวอย่างเพิ่มเติมเร็ว ๆ นี้ แต่นี่คือคู่ที่จะเริ่มต้น ก่อนอื่นคุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อมของคุณสำหรับบริการเช่น OpenAI, Manthropic และ Google Serp (OpenAI_ACCESS_TOKEN, MANTHOPIC_APIKE, SERPAPI_API_KEY) ฯลฯ หากคุณไม่ต้องการตั้งค่าตัวแปรเหล่านี้ในสภาพแวดล้อมของคุณคุณสามารถส่งผ่าน API โดยตรง
ในตัวอย่างด้านล่างเราเพิ่มอัญมณีทับทิมหนึ่งใบเพื่อโหลดสภาพแวดล้อมในบรรทัดแรก แต่ขึ้นอยู่กับสิ่งที่คุณต้องการคุณอาจไม่ต้องการสิ่งนี้
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 คำแนะนำจริงที่ส่งไปยังเอ็นจิ้นที่เชื่อมต่อจะถูกบันทึกไว้ สิ่งนี้เป็นไปโดยค่าเริ่มต้นเพราะมันเป็นคำพูดมาก แต่มีประโยชน์ถ้าคุณกำลังดีบั๊ก
มิฉะนั้นเราจะพิมพ์เป็นมาตรฐาน
หลังจากตรวจสอบ repo ให้เรียกใช้ 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 โครงการนี้มีจุดประสงค์เพื่อเป็นพื้นที่ที่ปลอดภัยและเป็นมิตรสำหรับการทำงานร่วมกันและผู้สนับสนุนคาดว่าจะปฏิบัติตามจรรยาบรรณ
อัญมณีมีให้เป็นโอเพ่นซอร์สภายใต้ข้อกำหนดของใบอนุญาต MIT
ทุกคนมีปฏิสัมพันธ์ในรหัสฐานของโครงการ BoxCars ตัวติดตามปัญหาห้องแชทและรายชื่อผู้รับจดหมายคาดว่าจะปฏิบัติตามจรรยาบรรณ