Module: Foobara::Ai

Defined in:
foobara-ai-1.0.2/src/foobara/ai.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/ask.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/types/chat.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/list_models.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/types/model.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/types/message.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/types/model_enum.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/types/service_enum.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/types/model.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/base_command.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/generate_next_message.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/types/message.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/list_models.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/types/model.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/base_command.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/role.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/types/model_enum.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/list_models.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/model.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/list_local_models.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/types/local_model.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/base_command.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/types/model_enum.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/message.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/list_running_models.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/types/model/details.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/types/running_model.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/create_message.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/types/chat_completion.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/model_enum.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/types/chat_completion.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/get_page_of_models.rb,
foobara-ollama-api-1.0.2/src/foobara/ai/ollama_api/generate_chat_completion.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/create_chat_completion.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/service_to_command.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/model_to_ai_service.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/message_result.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/page_of_models.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/types/chat_completion/usage.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/types/chat_completion/choice.rb,
foobara-open-ai-api-1.0.1/src/foobara/ai/open_ai_api/types/chat_completion/message.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/message_result/usage.rb,
foobara-anthropic-api-1.0.1/src/foobara/ai/anthropic_api/types/message_result/content.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/service_to_list_models_command.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/ollama_api/model_to_foobara_model.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/open_ai_api/model_to_foobara_model.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/anthropic_api/chat_to_create_message.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/anthropic_api/model_to_foobara_model.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/ollama_api/chat_completion_to_answer.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/ollama_api/model_to_model_enum_string.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/open_ai_api/chat_completion_to_answer.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/anthropic_api/message_result_to_answer.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/open_ai_api/model_to_model_enum_string.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/anthropic_api/message_result_to_message.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/anthropic_api/model_to_model_enum_string.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/anthropic_api/question_to_create_message.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/ollama_api/chat_to_generate_chat_completion.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/ollama_api/chat_completion_result_to_message.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/open_ai_api/chat_to_generate_chat_completion.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/open_ai_api/chat_completion_result_to_message.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/open_ai_api/question_to_create_chat_completion.rb,
foobara-ai-1.0.2/src/foobara/ai/answer_bot/domain_mappers/ollama_api/question_to_generate_chat_completion.rb,
foobara-ai-1.0.2/lib/foobara/ai.rb,
foobara-ollama-api-1.0.2/lib/foobara/ollama_api.rb

Defined Under Namespace

Modules: AnswerBot, AnthropicApi, OllamaApi, OpenAiApi

Class Method Summary collapse

Class Method Details

.anthropic_setup?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'foobara-ai-1.0.2/src/foobara/ai.rb', line 6

def anthropic_setup?
  defined?(Ai::AnthropicApi)
end

.default_llm_modelObject



45
46
47
# File 'foobara-ai-1.0.2/src/foobara/ai.rb', line 45

def default_llm_model
  @default_llm_model ||= installed_ai_services.values.first.default_llm_model
end

.installed_ai_servicesObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'foobara-ai-1.0.2/src/foobara/ai.rb', line 18

def installed_ai_services
  return @ai_services if @ai_services

  @ai_services = {}

  if anthropic_setup?
    @ai_services[AnswerBot::Types::ServiceEnum::ANTHROPIC] = AnthropicApi
  end

  if open_ai_setup?
    @ai_services[AnswerBot::Types::ServiceEnum::OPEN_AI] = OpenAiApi
  end

  if ollama_setup?
    @ai_services[AnswerBot::Types::ServiceEnum::OLLAMA] = OllamaApi
  end

  if @ai_services.empty?
    # :nocov:
    require "foobara/anthropic_api"
    @ai_services = { AnswerBot::Types::ServiceEnum::ANTHROPIC => AnthropicApi }
    # :nocov:
  end

  @ai_services
end

.ollama_setup?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'foobara-ai-1.0.2/src/foobara/ai.rb', line 14

def ollama_setup?
  defined?(Ai::OllamaApi)
end

.open_ai_setup?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'foobara-ai-1.0.2/src/foobara/ai.rb', line 10

def open_ai_setup?
  defined?(Ai::OpenAiApi)
end