DEV: Add attribution to AI captioned images (#483)
This commit is contained in:
parent
d88dceb49d
commit
97f3cba603
|
@ -121,7 +121,11 @@ module DiscourseAi
|
||||||
final_image_url,
|
final_image_url,
|
||||||
current_user,
|
current_user,
|
||||||
)
|
)
|
||||||
render json: { caption: caption }, status: 200
|
render json: {
|
||||||
|
caption:
|
||||||
|
"#{caption} (#{I18n.t("discourse_ai.ai_helper.image_caption.attribution")})",
|
||||||
|
},
|
||||||
|
status: 200
|
||||||
end
|
end
|
||||||
rescue DiscourseAi::Completions::Endpoints::Base::CompletionFailed, Net::HTTPBadResponse
|
rescue DiscourseAi::Completions::Endpoints::Base::CompletionFailed, Net::HTTPBadResponse
|
||||||
render_json_error I18n.t("discourse_ai.ai_helper.errors.completion_request_failed"),
|
render_json_error I18n.t("discourse_ai.ai_helper.errors.completion_request_failed"),
|
||||||
|
|
|
@ -147,6 +147,8 @@ en:
|
||||||
attribution:
|
attribution:
|
||||||
stable_diffusion_xl: "Image by Stable Diffusion XL"
|
stable_diffusion_xl: "Image by Stable Diffusion XL"
|
||||||
dall_e_3: "Image by DALL-E 3"
|
dall_e_3: "Image by DALL-E 3"
|
||||||
|
image_caption:
|
||||||
|
attribution: "Captioned by AI"
|
||||||
|
|
||||||
ai_bot:
|
ai_bot:
|
||||||
personas:
|
personas:
|
||||||
|
|
|
@ -112,6 +112,9 @@ RSpec.describe DiscourseAi::AiHelper::AssistantController do
|
||||||
fab!(:upload) { Fabricate(:upload) }
|
fab!(:upload) { Fabricate(:upload) }
|
||||||
let(:image_url) { "#{Discourse.base_url}#{upload.url}" }
|
let(:image_url) { "#{Discourse.base_url}#{upload.url}" }
|
||||||
let(:caption) { "A picture of a cat sitting on a table" }
|
let(:caption) { "A picture of a cat sitting on a table" }
|
||||||
|
let(:caption_with_attrs) do
|
||||||
|
"A picture of a cat sitting on a table (#{I18n.t("discourse_ai.ai_helper.image_caption.attribution")})"
|
||||||
|
end
|
||||||
|
|
||||||
context "when logged in as an allowed user" do
|
context "when logged in as an allowed user" do
|
||||||
fab!(:user) { Fabricate(:user, refresh_auto_groups: true) }
|
fab!(:user) { Fabricate(:user, refresh_auto_groups: true) }
|
||||||
|
@ -131,7 +134,7 @@ RSpec.describe DiscourseAi::AiHelper::AssistantController do
|
||||||
post "/discourse-ai/ai-helper/caption_image", params: { image_url: image_url }
|
post "/discourse-ai/ai-helper/caption_image", params: { image_url: image_url }
|
||||||
|
|
||||||
expect(response.status).to eq(200)
|
expect(response.status).to eq(200)
|
||||||
expect(response.parsed_body["caption"]).to eq(caption)
|
expect(response.parsed_body["caption"]).to eq(caption_with_attrs)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns a 502 error when the completion call fails" do
|
it "returns a 502 error when the completion call fails" do
|
||||||
|
@ -177,7 +180,7 @@ RSpec.describe DiscourseAi::AiHelper::AssistantController do
|
||||||
group.add(user)
|
group.add(user)
|
||||||
post "/discourse-ai/ai-helper/caption_image", params: { image_url: image_url }
|
post "/discourse-ai/ai-helper/caption_image", params: { image_url: image_url }
|
||||||
expect(response.status).to eq(200)
|
expect(response.status).to eq(200)
|
||||||
expect(response.parsed_body["caption"]).to eq(caption)
|
expect(response.parsed_body["caption"]).to eq(caption_with_attrs)
|
||||||
end
|
end
|
||||||
|
|
||||||
context "if the input URL is for a secure upload but not on the secure-uploads path" do
|
context "if the input URL is for a secure upload but not on the secure-uploads path" do
|
||||||
|
@ -187,7 +190,7 @@ RSpec.describe DiscourseAi::AiHelper::AssistantController do
|
||||||
group.add(user)
|
group.add(user)
|
||||||
post "/discourse-ai/ai-helper/caption_image", params: { image_url: image_url }
|
post "/discourse-ai/ai-helper/caption_image", params: { image_url: image_url }
|
||||||
expect(response.status).to eq(200)
|
expect(response.status).to eq(200)
|
||||||
expect(response.parsed_body["caption"]).to eq(caption)
|
expect(response.parsed_body["caption"]).to eq(caption_with_attrs)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue