Added Ai Image Analyzer support (#386)

* Added Ai Image Analyzer support

* removed unnecessary null check
This commit is contained in:
Swaggeroo
2024-07-23 09:51:43 +02:00
committed by GitHub
parent 26867000dd
commit 58cc6400e8
5 changed files with 57 additions and 4 deletions

View File

@@ -40,6 +40,8 @@ export interface OmnisearchSettings extends WeightingSettings {
imagesIndexing: boolean
/** Enable Office documents indexing */
officeIndexing: boolean
/** Enable image ai indexing */
aiImageIndexing: boolean
/** Enable indexing of unknown files */
unsupportedFilesIndexing: 'yes' | 'no' | 'default'
@@ -95,6 +97,7 @@ export class SettingsTab extends PluginSettingTab {
const { containerEl } = this
const database = this.plugin.database
const textExtractor = this.plugin.getTextExtractor()
const aiImageAnalyzer = this.plugin.getAIImageAnalyzer()
containerEl.empty()
if (this.app.loadLocalStorage(K_DISABLE_OMNISEARCH) == '1') {
@@ -124,6 +127,12 @@ export class SettingsTab extends PluginSettingTab {
} else {
span.innerHTML += `⚠️ Omnisearch requires <a href="https://github.com/scambier/obsidian-text-extractor">Text Extractor</a> to index PDFs and images.`
}
if (aiImageAnalyzer) {
span.innerHTML += `<br/>👍 You have installed <a href="https://github.com/Swaggeroo/obsidian-ai-image-analyzer">AI Image Analyzer</a>, Omnisearch can use it to index images contents with ai.`
}else {
span.innerHTML += `<br/>⚠️ Omnisearch requires <a href="https://github.com/Swaggeroo/obsidian-ai-image-analyzer">AI Image Analyzer</a> to index images with ai.`
}
})
new Setting(containerEl)
@@ -186,6 +195,23 @@ export class SettingsTab extends PluginSettingTab {
)
.setDisabled(!textExtractor)
// AI Images Indexing
const aiIndexImagesDesc = new DocumentFragment()
aiIndexImagesDesc.createSpan({}, span => {
span.innerHTML = `Omnisearch will use AI Image Analyzer to index the content of your images with ai.`
})
new Setting(containerEl)
.setName(`Images AI indexing ${aiImageAnalyzer ? '' : '⚠️ Disabled'}`)
.setDesc(aiIndexImagesDesc)
.addToggle(toggle =>
toggle.setValue(settings.aiImageIndexing).onChange(async v => {
await database.clearCache()
settings.aiImageIndexing = v
await saveSettings(this.plugin)
})
)
.setDisabled(!aiImageAnalyzer)
// Index filenames of unsupported files
const indexUnsupportedDesc = new DocumentFragment()
indexUnsupportedDesc.createSpan({}, span => {
@@ -723,6 +749,7 @@ export function getDefaultSettings(app: App): OmnisearchSettings {
PDFIndexing: false,
officeIndexing: false,
imagesIndexing: false,
aiImageIndexing: false,
unsupportedFilesIndexing: 'default',
splitCamelCase: false,
openInNewPane: false,