@@ -12,9 +12,11 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread
1212import com.intellij.openapi.actionSystem.AnActionEvent
1313import com.intellij.openapi.vfs.VirtualFile
1414import com.simiacryptus.jopenai.models.chatModel
15- import com.simiacryptus.skyenet.apps.parse.CodeParsingModel
1615import com.simiacryptus.skyenet.apps.parse.DocumentParserApp
1716import com.simiacryptus.skyenet.apps.parse.DocumentParsingModel
17+ import com.simiacryptus.skyenet.apps.parse.ParsingModel
18+ import com.simiacryptus.skyenet.apps.parse.ParsingModel.DocumentData
19+ import com.simiacryptus.skyenet.apps.parse.ParsingModelType
1820import com.simiacryptus.skyenet.core.platform.Session
1921import com.simiacryptus.skyenet.core.platform.file.DataStorage
2022import com.simiacryptus.skyenet.webui.application.AppInfoData
@@ -26,6 +28,7 @@ import java.nio.file.Path
2628class DocumentDataExtractorAction : BaseAction () {
2729 val path = " /pdfExtractor"
2830 private var settings = DocumentParserApp .Settings ()
31+ private var modelType = ParsingModelType .Document
2932
3033 override fun getActionUpdateThread () = ActionUpdateThread .BGT
3134
@@ -68,29 +71,24 @@ class DocumentDataExtractorAction : BaseAction() {
6871 return
6972 }
7073 val selectedFile = processableFiles.first()
71- val configDialog = DocumentDataExtractorConfigDialog (e.project, settings)
74+ val configDialog = DocumentDataExtractorConfigDialog (e.project, settings, modelType )
7275 if (! configDialog.showAndGet()) return
7376 settings = configDialog.settings
77+ modelType = configDialog.modelType as ParsingModelType <DocumentParsingModel >
7478
7579 val session = Session .newGlobalID()
7680 DataStorage .sessionPaths[session] = selectedFile.toFile.parentFile
7781
7882 val smartModel = AppSettingsState .instance.smartModel.chatModel()
79- val parsingModel = when {
80- selectedFile.name.endsWith(" .pdf" , ignoreCase = true ) -> DocumentParsingModel (smartModel, 0.1 )
81- selectedFile.name.endsWith(" .txt" , ignoreCase = true ) -> DocumentParsingModel (smartModel, 0.1 )
82- selectedFile.name.endsWith(" .html" , ignoreCase = true ) -> DocumentParsingModel (smartModel, 0.1 )
83- selectedFile.name.endsWith(" .htm" , ignoreCase = true ) -> DocumentParsingModel (smartModel, 0.1 )
84- selectedFile.name.endsWith(" .md" , ignoreCase = true ) -> DocumentParsingModel (smartModel, 0.1 )
85- else -> CodeParsingModel (smartModel, 0.1 )
86- }
83+ val parsingModel = ParsingModelType .getImpl(smartModel, 0.1 , modelType)
8784
88- SessionProxyServer .Companion . chats[session] = object : DocumentParserApp (
85+ SessionProxyServer .chats[session] = object : DocumentParserApp (
8986 applicationName = " Document Extractor" ,
9087 path = this @DocumentDataExtractorAction.path,
9188 api = this @DocumentDataExtractorAction.api,
9289 fileInputs = processableFiles.map<VirtualFile , Path > { it.toNioPath() },
93- parsingModel = parsingModel,
90+ parsingModel = parsingModel as ParsingModel <DocumentData >,
91+ fastMode = settings.fastMode,
9492 ) {
9593 override fun <T : Any > initSettings (session : Session ): T = this @DocumentDataExtractorAction.settings as T
9694 override val root: File get() = selectedFile.parent.toFile
0 commit comments