Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit 25c97ca

Browse files
committed
Move allowing or disallowing pdf/images to a site setting
1 parent f5ce2db commit 25c97ca

File tree

16 files changed

+114
-20
lines changed

16 files changed

+114
-20
lines changed

admin/assets/javascripts/discourse/routes/admin-plugins-show-discourse-ai-tools-edit.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ export default class DiscourseAiToolsEditRoute extends DiscourseRoute {
1515
controller.set("allTools", toolsModel);
1616
controller.set("presets", toolsModel.resultSetMeta.presets);
1717
controller.set("llms", toolsModel.resultSetMeta.llms);
18+
controller.set("settings", toolsModel.resultSetMeta.settings);
1819
}
1920
}

admin/assets/javascripts/discourse/routes/admin-plugins-show-discourse-ai-tools-new.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ export default class DiscourseAiToolsNewRoute extends DiscourseRoute {
1212
controller.set("allTools", toolsModel);
1313
controller.set("presets", toolsModel.resultSetMeta.presets);
1414
controller.set("llms", toolsModel.resultSetMeta.llms);
15+
controller.set("settings", toolsModel.resultSetMeta.settings);
1516
}
1617
}

admin/assets/javascripts/discourse/templates/admin-plugins/show/discourse-ai-tools/edit.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
@model={{this.model}}
55
@presets={{this.presets}}
66
@llms={{this.llms}}
7+
@settings={{this.settings}}
78
/>
89
</section>

admin/assets/javascripts/discourse/templates/admin-plugins/show/discourse-ai-tools/new.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
@model={{this.model}}
55
@presets={{this.presets}}
66
@llms={{this.llms}}
7+
@settings={{this.settings}}
78
/>
89
</section>

app/controllers/discourse_ai/admin/ai_personas_controller.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,16 @@ def index
3535
DiscourseAi::Configuration::LlmEnumerator.values_for_serialization(
3636
allowed_seeded_llm_ids: SiteSetting.ai_bot_allowed_seeded_models_map,
3737
)
38-
render json: { ai_personas: ai_personas, meta: { tools: tools, llms: llms } }
38+
render json: {
39+
ai_personas: ai_personas,
40+
meta: {
41+
tools: tools,
42+
llms: llms,
43+
settings: {
44+
rag_pdf_images_enabled: SiteSetting.ai_rag_pdf_images_enabled,
45+
},
46+
},
47+
}
3948
end
4049

4150
def new

app/controllers/discourse_ai/admin/rag_document_fragments_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ def upload_file
4848

4949
def validate_extension!(filename)
5050
extension = File.extname(filename)[1..-1] || ""
51-
authorized_extensions = %w[txt md pdf png jpg jpeg]
51+
authorized_extensions = %w[txt md]
52+
authorized_extensions.concat(%w[pdf png jpg jpeg]) if SiteSetting.ai_rag_pdf_images_enabled
5253
if !authorized_extensions.include?(extension)
5354
raise Discourse::InvalidParameters.new(
5455
I18n.t(

app/jobs/regular/digest_rag_upload.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ def first_chunk(text, chunk_tokens:, tokenizer:, splitters: ["\n\n", "\n", ".",
164164
end
165165

166166
def get_uploaded_file(upload:, target:)
167+
if %w[pdf png jpg jpeg].include?(upload.extension) && !SiteSetting.ai_rag_pdf_images_enabled
168+
raise Discourse::InvalidAccess.new(
169+
"The setting ai_rag_pdf_images_enabled is false, can not index images and pdfs.",
170+
)
171+
end
167172
if upload.extension == "pdf"
168173
pages =
169174
DiscourseAi::Utils::PdfToImages.new(

app/serializers/ai_custom_tool_list_serializer.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ def meta
99
{
1010
presets: AiTool.presets,
1111
llms: DiscourseAi::Configuration::LlmEnumerator.values_for_serialization,
12+
settings: {
13+
rag_pdf_images_enabled: SiteSetting.ai_rag_pdf_images_enabled,
14+
},
1215
}
1316
end
1417

assets/javascripts/discourse/components/ai-persona-editor.gjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -596,11 +596,13 @@ export default class PersonaEditor extends Component {
596596
@target={{this.editingModel}}
597597
@updateUploads={{this.updateUploads}}
598598
@onRemove={{this.removeUpload}}
599+
@allowPdfsAndImages={{@personas.resultSetMeta.settings.rag_pdf_images_enabled}}
599600
/>
600601
</div>
601602
<RagOptions
602603
@model={{this.editingModel}}
603604
@llms={{@personas.resultSetMeta.llms}}
605+
@allowPdfsAndImages={{@personas.resultSetMeta.settings.rag_pdf_images_enabled}}
604606
>
605607
<div class="control-group">
606608
<label>{{i18n

assets/javascripts/discourse/components/ai-tool-editor.gjs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,14 @@ export default class AiToolEditor extends Component {
245245
@target={{this.editingModel}}
246246
@updateUploads={{this.updateUploads}}
247247
@onRemove={{this.removeUpload}}
248+
@allowPdfsAndImages={{@settings.rag_pdf_images_enabled}}
248249
/>
249250
</div>
250-
<RagOptions @model={{this.editingModel}} @llms={{this.args.llms}} />
251+
<RagOptions
252+
@model={{this.editingModel}}
253+
@llms={{this.args.llms}}
254+
@allowPdfsAndImages={{@settings.rag_pdf_images_enabled}}
255+
/>
251256
{{/if}}
252257

253258
<div class="control-group ai-tool-editor__action_panel">

0 commit comments

Comments
 (0)