Sam a55216773a
FEATURE: Amazon Nova support via bedrock (#997)
Refactor dialect selection and add Nova API support

    Change dialect selection to use llm_model object instead of just provider name
    Add support for Amazon Bedrock's Nova API with native tools
    Implement Nova-specific message processing and formatting
    Update specs for Nova and AWS Bedrock endpoints
    Enhance AWS Bedrock support to handle Nova models
    Fix Gemini beta API detection logic
2024-12-06 07:45:58 +11:00

45 lines
1.0 KiB
Ruby

# frozen_string_literal: true
# basically the same as Open AI, except for no support for user names
module DiscourseAi
module Completions
module Dialects
class Mistral < ChatGpt
class << self
def can_translate?(llm_model)
llm_model.provider == "mistral"
end
end
def translate
corrected = super
corrected.each do |msg|
msg[:content] = "" if msg[:tool_calls] && msg[:role] == "assistant"
end
corrected
end
private
def user_msg(msg)
mapped = super
if name = mapped.delete(:name)
if mapped[:content].is_a?(String)
mapped[:content] = "#{name}: #{mapped[:content]}"
else
mapped[:content].each do |inner|
if inner[:text]
inner[:text] = "#{name}: #{inner[:text]}"
break
end
end
end
end
mapped
end
end
end
end
end