FEATURE: Handle secure uploads in image caption (#476)
This commit is contained in:
parent
a9b2d6a30a
commit
cf19ce0d72
|
@ -109,11 +109,16 @@ module DiscourseAi
|
|||
image_url = params[:image_url]
|
||||
raise Discourse::InvalidParameters.new(:image_url) if !image_url
|
||||
|
||||
image = Upload.where(url: params[:image_url])
|
||||
image = Upload.find_by(sha1: Upload.sha1_from_long_url(image_url))
|
||||
|
||||
if image&.secure?
|
||||
url = Upload.signed_url_from_secure_uploads_url(image_url)
|
||||
else
|
||||
url = UrlHelper.absolute(image_url)
|
||||
end
|
||||
|
||||
hijack do
|
||||
caption =
|
||||
DiscourseAi::AiHelper::Assistant.new.generate_image_caption(image_url, current_user)
|
||||
caption = DiscourseAi::AiHelper::Assistant.new.generate_image_caption(url, current_user)
|
||||
render json: { caption: caption }, status: 200
|
||||
end
|
||||
rescue DiscourseAi::Completions::Endpoints::Base::CompletionFailed, Net::HTTPBadResponse
|
||||
|
|
|
@ -10,7 +10,11 @@ export default apiInitializer("1.25.0", (api) => {
|
|||
class: "generate-caption",
|
||||
};
|
||||
const imageCaptionPopup = api.container.lookup("service:imageCaptionPopup");
|
||||
const settings = api.container.lookup("service:site-settings");
|
||||
|
||||
if (!settings.ai_helper_enabled_features.includes("image_caption")) {
|
||||
return;
|
||||
}
|
||||
api.addComposerImageWrapperButton(
|
||||
buttonAttrs.label,
|
||||
buttonAttrs.class,
|
||||
|
|
|
@ -224,6 +224,7 @@ discourse_ai:
|
|||
choices:
|
||||
- "suggestions"
|
||||
- "context_menu"
|
||||
- "image_caption"
|
||||
ai_helper_image_caption_model:
|
||||
default: "llava"
|
||||
type: enum
|
||||
|
|
Loading…
Reference in New Issue