diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 6258194d..9b32f155 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -14,6 +14,7 @@ en: gemini_pro: Gemini Pro claude_3_opus: Claude 3 Opus claude_3_sonnet: Claude 3 Sonnet + claude_3_haiku: Claude 3 Haiku scriptables: llm_report: fields: @@ -245,6 +246,7 @@ en: fake: "Fake Test Bot" claude-3-opus: "Claude 3 Opus" claude-3-sonnet: "Claude 3 Sonnet" + claude-3-haiku: "Claude 3 Haiku" gpt-4: "GPT-4" gpt-4-turbo: "GPT-4 Turbo" gpt-3: diff --git a/config/settings.yml b/config/settings.yml index fe620b1f..53282b0c 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -331,6 +331,7 @@ discourse_ai: - mixtral-8x7B-Instruct-V0.1 - claude-3-opus - claude-3-sonnet + - claude-3-haiku ai_bot_add_to_header: default: true client: true diff --git a/lib/ai_bot/bot.rb b/lib/ai_bot/bot.rb index 71702469..2b540d30 100644 --- a/lib/ai_bot/bot.rb +++ b/lib/ai_bot/bot.rb @@ -181,6 +181,8 @@ module DiscourseAi "anthropic:claude-3-opus" when DiscourseAi::AiBot::EntryPoint::CLAUDE_3_SONNET_ID "anthropic:claude-3-sonnet" + when DiscourseAi::AiBot::EntryPoint::CLAUDE_3_HAIKU_ID + "anthropic:claude-3-haiku" else nil end diff --git a/lib/ai_bot/entry_point.rb b/lib/ai_bot/entry_point.rb index 0c0562a1..b61acbf7 100644 --- a/lib/ai_bot/entry_point.rb +++ b/lib/ai_bot/entry_point.rb @@ -16,6 +16,7 @@ module DiscourseAi FAKE_ID = -116 # only used for dev and test CLAUDE_3_OPUS_ID = -117 CLAUDE_3_SONNET_ID = -118 + CLAUDE_3_HAIKU_ID = -119 BOTS = [ [GPT4_ID, "gpt4_bot", "gpt-4"], @@ -27,6 +28,7 @@ module DiscourseAi [FAKE_ID, "fake_bot", "fake"], [CLAUDE_3_OPUS_ID, "claude_3_opus_bot", "claude-3-opus"], [CLAUDE_3_SONNET_ID, "claude_3_sonnet_bot", "claude-3-sonnet"], + [CLAUDE_3_HAIKU_ID, "claude_3_haiku_bot", "claude-3-haiku"], ] BOT_USER_IDS = BOTS.map(&:first) @@ -63,6 +65,8 @@ module DiscourseAi CLAUDE_3_OPUS_ID in "claude-3-sonnet" CLAUDE_3_SONNET_ID + in "claude-3-haiku" + CLAUDE_3_HAIKU_ID else nil end diff --git a/lib/automation.rb b/lib/automation.rb index 5be5c4d1..fc295f3b 100644 --- a/lib/automation.rb +++ b/lib/automation.rb @@ -8,6 +8,7 @@ module DiscourseAi { id: "gpt-3.5-turbo", name: "discourse_automation.ai_models.gpt_3_5_turbo" }, { id: "claude-2", name: "discourse_automation.ai_models.claude_2" }, { id: "gemini-pro", name: "discourse_automation.ai_models.gemini_pro" }, + { id: "claude-3-haiku", name: "discourse_automation.ai_models.claude_3_haiku" }, { id: "claude-3-sonnet", name: "discourse_automation.ai_models.claude_3_sonnet" }, { id: "claude-3-opus", name: "discourse_automation.ai_models.claude_3_opus" }, ] diff --git a/lib/completions/dialects/claude_messages.rb b/lib/completions/dialects/claude_messages.rb index c0e9feb0..db6d6960 100644 --- a/lib/completions/dialects/claude_messages.rb +++ b/lib/completions/dialects/claude_messages.rb @@ -6,8 +6,7 @@ module DiscourseAi class ClaudeMessages < Dialect class << self def can_translate?(model_name) - # TODO: add haiku not released yet as of 2024-03-05 - %w[claude-3-sonnet claude-3-opus].include?(model_name) + %w[claude-3-haiku claude-3-sonnet claude-3-opus].include?(model_name) end def tokenizer diff --git a/lib/completions/endpoints/anthropic_messages.rb b/lib/completions/endpoints/anthropic_messages.rb index 7485e0e6..794df7f8 100644 --- a/lib/completions/endpoints/anthropic_messages.rb +++ b/lib/completions/endpoints/anthropic_messages.rb @@ -6,7 +6,8 @@ module DiscourseAi class AnthropicMessages < Base class << self def can_contact?(endpoint_name, model_name) - endpoint_name == "anthropic" && %w[claude-3-opus claude-3-sonnet].include?(model_name) + endpoint_name == "anthropic" && + %w[claude-3-haiku claude-3-opus claude-3-sonnet].include?(model_name) end def dependant_setting_names diff --git a/lib/completions/llm.rb b/lib/completions/llm.rb index ba4bdf34..37809678 100644 --- a/lib/completions/llm.rb +++ b/lib/completions/llm.rb @@ -24,7 +24,7 @@ module DiscourseAi @models_by_provider ||= { aws_bedrock: %w[claude-instant-1 claude-2], - anthropic: %w[claude-instant-1 claude-2 claude-3-sonnet claude-3-opus], + anthropic: %w[claude-instant-1 claude-2 claude-3-haiku claude-3-sonnet claude-3-opus], vllm: %w[ mistralai/Mixtral-8x7B-Instruct-v0.1 mistralai/Mistral-7B-Instruct-v0.2