mirror of
https://ghfast.top/https://github.com/discourse/discourse-ai.git
synced 2026-07-16 11:36:23 +08:00
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
44 lines
1 KiB
Ruby
44 lines
1 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
|