lib/foobara/ai.rb
require "foobara/all" module Foobara module Ai foobara_organization! module AnswerBot foobara_domain! require_relative "../../src/foobara/ai/answer_bot/types/service_enum" ai_services = {} if defined?(Foobara::Ai::OpenAiApi) ai_services[Types::ServiceEnum::OPEN_AI] = OpenAiApi end if defined?(Foobara::Ai::AnthropicApi) ai_services[Types::ServiceEnum::ANTHROPIC] = AnthropicApi end if defined?(Foobara::Ai::OllamaApi) ai_services[Types::ServiceEnum::OLLAMA] = OllamaApi end ai_services.each_value do |domain| foobara_depends_on domain end AI_SERVICES = ai_services base_dir = "#{__dir__}/../../src/foobara/ai/answer_bot" AI_SERVICES.each_value do |domain| path = Util.underscore(domain.foobara_domain_name) require_relative "#{base_dir}/domain_mappers/#{path}/model_to_model_enum_string" end 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.each_value do |domain| path = Util.underscore(domain.foobara_domain_name) Util.require_directory "#{base_dir}/domain_mappers/#{path}" end end end end