Boxcars - это драгоценный камень, который позволяет создавать новые системы с композицией ИИ, используя различные концепции, такие как LLMS (OpenAI, Anpropic, GPT4All), Search, SQL (как с продолжением, так и с активной поддержкой записи), активной записи рельсов, векторный поиск и многое другое. Это также может быть расширено и вашими понятиями (включая ваши концепции).
Этот драгоценный камень был вдохновлен популярной библиотекой Python Langchain. Тем не менее, мы хотели дать ему рубиновую спинку и сделать его более удобным для начинающих, чтобы начать работу.
Все эти концепции находятся в модуле с именем ящиков:
Boxcars.engine .Boxcars::train , когда хотите построить поезд.Boxcar.configuration.default_engine ). У нас есть двигатель для API Claude's Claude's API под названием Boxcars::Anthropic , и еще один двигатель для GPT с именем Boxcars::Gpt4allEng .В настоящее время наша система предназначена для людей, которые уже обладают административными привилегиями для своего проекта. Скорее всего, можно манипулировать подсказками системы для выполнения вредоносных действий, но если у вас уже есть административный доступ, вы можете выполнять такие действия, не требуя ящиков в первую очередь.
Примечание: мы активно ищем способы улучшить способность нашей системы идентифицировать и предотвратить любые гнусные попытки. Если у вас есть какие -либо предложения или рекомендации, пожалуйста, не стесняйтесь поделиться ими с нами, либо обнаружив существующую проблему, либо создав новую и предоставив нам ваши отзывы.
Добавьте эту строку в Gemfile вашего приложения:
gem 'boxcars'А затем выполнить:
$ bundle install
Или установите его самостоятельно как:
$ gem install boxcars
Мы скоро добавим больше примеров, но вот пара, чтобы начать вас. Во -первых, вам нужно настроить переменные среды для таких услуг, как OpenAI, Anpropic и Google Serp (openai_access_token, anpropic_api_key, serpapi_api_key) и т. Д. Если вы предпочитаете не устанавливать эти переменные в своей среде, вы можете передать их непосредственно в API.
В приведенных ниже примерах мы добавили один драгоценный камень Ruby для загрузки среды на первой строке, но в зависимости от того, чего вы хотите, вам это не понадобится.
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 см. В этом ноутбуке Jupyter.
Для простого векторного хранилища и поиска см. В этом записной книжке Jupyter.
Обратите внимание, что некоторые люди, с которыми мы разговаривали, не знали, что вы можете запустить ноутбуки Ruby Jupyter. Ты можешь.
Если вы используете это в приложении Rails или настройте Boxcars.configuration.logger = your_logger , журнал перейдет в ваш файл журнала.
Кроме того, если вы установите этот флаг: Boxcars.configuration.log_prompts = true будут зарегистрированы фактические подсказки, переданные подключенному двигателю. Это выключено по умолчанию, потому что это очень многословно, но удобно, если вы отлаживаете подсказки.
В противном случае мы печатаем в соответствии с стандартом.
После проверки репо, запустите bin/setup для установки зависимостей. Затем запустите rake spec , чтобы запустить тесты. Вы также можете запустить bin/console для интерактивной подсказки, которая позволит вам экспериментировать.
Чтобы установить этот драгоценный камень на локальную машину, запустите bundle exec rake install . Чтобы bundle exec rake release новую версию, обновите .gem версии в version.rb .
Отчеты об ошибках и запросы на тягу приветствуются на GitHub по адресу https://github.com/boxcarsai/boxcars. Этот проект предназначен для безопасного, гостеприимного места для сотрудничества, и ожидается, что участники будут придерживаться кодекса поведения.
Драгоценный камень доступен в качестве открытого исходного кода в соответствии с условиями лицензии MIT.
Ожидается, что все, кто взаимодействует в кодовых базах проекта проекта Boxcars, трекеров, чат и списках рассылки.