lib/foobara/ai.rb
require "foobara/all" module Foobara module Ai foobara_organization! module AnswerBot foobara_domain! base_dir = "#{__dir__}/../../src/foobara/ai/answer_bot" Util.require_directory "#{base_dir}/types" Dir["#{base_dir}/domain_mappers/*.rb"].each { |f| require f } Dir["#{base_dir}/*.rb"].each { |f| require f } ai_services = {} Types::ServiceEnum.all_values.each do |service| domain = case service when Types::ServiceEnum::OPEN_AI OpenAiApi when Types::ServiceEnum::ANTHROPIC AnthropicApi when Types::ServiceEnum::OLLAMA OllamaApi end ai_services[service] = domain foobara_depends_on domain path = Util.underscore(domain.foobara_domain_name) Util.require_directory "#{__dir__}/../../src/foobara/ai/answer_bot/domain_mappers/#{path}" end AI_SERVICES = ai_services end end end