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]
|
image_url = params[:image_url]
|
||||||
raise Discourse::InvalidParameters.new(:image_url) if !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
|
hijack do
|
||||||
caption =
|
caption = DiscourseAi::AiHelper::Assistant.new.generate_image_caption(url, current_user)
|
||||||
DiscourseAi::AiHelper::Assistant.new.generate_image_caption(image_url, current_user)
|
|
||||||
render json: { caption: caption }, status: 200
|
render json: { caption: caption }, status: 200
|
||||||
end
|
end
|
||||||
rescue DiscourseAi::Completions::Endpoints::Base::CompletionFailed, Net::HTTPBadResponse
|
rescue DiscourseAi::Completions::Endpoints::Base::CompletionFailed, Net::HTTPBadResponse
|
||||||
|
|
|
@ -10,7 +10,11 @@ export default apiInitializer("1.25.0", (api) => {
|
||||||
class: "generate-caption",
|
class: "generate-caption",
|
||||||
};
|
};
|
||||||
const imageCaptionPopup = api.container.lookup("service:imageCaptionPopup");
|
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(
|
api.addComposerImageWrapperButton(
|
||||||
buttonAttrs.label,
|
buttonAttrs.label,
|
||||||
buttonAttrs.class,
|
buttonAttrs.class,
|
||||||
|
|
|
@ -224,6 +224,7 @@ discourse_ai:
|
||||||
choices:
|
choices:
|
||||||
- "suggestions"
|
- "suggestions"
|
||||||
- "context_menu"
|
- "context_menu"
|
||||||
|
- "image_caption"
|
||||||
ai_helper_image_caption_model:
|
ai_helper_image_caption_model:
|
||||||
default: "llava"
|
default: "llava"
|
||||||
type: enum
|
type: enum
|
||||||
|
|
Loading…
Reference in New Issue