5.9 KiB
5.9 KiB
AI process with prompt, documents, and outputFormat
flowchart TD
start[Workflow ai.process]
callAi[services.ai.callAi prompt documents outputFormat]
getPrompt[GenerationService.getExtractionPrompt]
aiText[_callAiText with extractionPrompt documents options]
extract[ExtractionService.extractContent]
readFile[Db.getFileData]
llmCall[AiObjects.call]
hasImages{Any image parts}
llmImg[AiObjects.callImage]
render[GenerationService.renderReport]
pickRenderer[renderers.registry.get_renderer]
renderer[Format specific renderer]
rendered[Rendered content + mimeType]
result[ActionResult documents]
start --> callAi
callAi --> getPrompt
callAi --> aiText
aiText --> extract
extract --> readFile
aiText --> llmCall
aiText --> hasImages
hasImages -->|yes| llmImg
hasImages -->|no| llmCall
aiText --> render
render --> pickRenderer
pickRenderer --> renderer
renderer --> rendered
rendered --> result
method.document.extract with prompt and documents
flowchart TD
start[MethodDocument.extract]
callAi[services.ai.callAi prompt documents]
aiText[_callAiText with prompt documents options]
extract[ExtractionService.extractContent]
readFile[Db.getFileData]
llmCall[AiObjects.call]
hasImages{Any image parts?}
llmImg[AiObjects.callImage]
textOut[Aggregated AI response text]
buildDocs[Create ActionDocument txt]
result[ActionResult documents]
start --> callAi
callAi --> aiText
aiText --> extract
extract --> readFile
aiText --> llmCall
aiText --> hasImages
hasImages -->|yes| llmImg
hasImages -->|no| llmCall
llmCall --> textOut
llmImg --> textOut
textOut --> buildDocs
buildDocs --> result
Common flow between ai.process and document.extract
flowchart TD
userInput[User Input Parameters]
workflow[Workflow Engine]
method[Method Handler]
start[Workflow Action]
callAi[services.ai.callAi]
aiText[_callAiText]
extract[ExtractionService.extractContent]
readFile[Db.getFileData]
llmCall[AiObjects.call]
hasImages{Any image parts?}
llmImg[AiObjects.callImage]
aiResponse[AI Response]
%% ai.process specific
getPrompt[GenerationService.getExtractionPrompt]
render[GenerationService.renderReport]
pickRenderer[renderers.registry.get_renderer]
renderer[Format specific renderer]
rendered[Rendered content + mimeType]
%% document.extract specific
buildDocs[Create ActionDocument txt]
%% Common result
actionResult[ActionResult with documents]
workflowResult[Workflow Result]
userOutput[User Output]
userInput --> workflow
workflow --> method
method --> start
start --> callAi
callAi --> aiText
aiText --> extract
extract --> readFile
aiText --> llmCall
aiText --> hasImages
hasImages -->|yes| llmImg
hasImages -->|no| llmCall
llmCall --> aiResponse
llmImg --> aiResponse
%% ai.process path
callAi --> getPrompt
aiResponse --> render
render --> pickRenderer
pickRenderer --> renderer
renderer --> rendered
rendered --> actionResult
%% document.extract path
aiResponse --> buildDocs
buildDocs --> actionResult
%% Common result path
actionResult --> workflowResult
workflowResult --> userOutput
classDef common fill:#e1f5fe
classDef aiProcess fill:#fff3e0
classDef extract fill:#f3e5f5
classDef io fill:#e8f5e8
class start,callAi,aiText,extract,readFile,llmCall,hasImages,llmImg,aiResponse,actionResult,workflowResult,userOutput common
class getPrompt,render,pickRenderer,renderer,rendered aiProcess
class buildDocs extract
class userInput,workflow,method,userOutput io
Input points for ai.process and document.extract
flowchart TD
user[User]
%% ai.process input
aiProcess[ai.process Action]
aiPrompt[prompt: string]
aiDocuments[documents: ChatDocument[]]
aiOutputFormat[outputFormat: string]
aiTitle[title: string optional]
%% document.extract input
docExtract[document.extract Action]
docPrompt[prompt: string]
docDocuments[documentList: string[]]
docOperationType[operationType: string optional]
docProcessIndividually[processDocumentsIndividually: bool optional]
docChunkAllowed[chunkAllowed: bool optional]
docMergeStrategy[mergeStrategy: dict optional]
docExpectedFormats[expectedDocumentFormats: list optional]
docIncludeMetadata[includeMetadata: bool optional]
%% Common processing
commonAI[services.ai.callAi]
user --> aiProcess
user --> docExtract
aiProcess --> aiPrompt
aiProcess --> aiDocuments
aiProcess --> aiOutputFormat
aiProcess --> aiTitle
docExtract --> docPrompt
docExtract --> docDocuments
docExtract --> docOperationType
docExtract --> docProcessIndividually
docExtract --> docChunkAllowed
docExtract --> docMergeStrategy
docExtract --> docExpectedFormats
docExtract --> docIncludeMetadata
aiPrompt --> commonAI
aiDocuments --> commonAI
aiOutputFormat --> commonAI
aiTitle --> commonAI
docPrompt --> commonAI
docDocuments --> commonAI
docOperationType --> commonAI
docProcessIndividually --> commonAI
docChunkAllowed --> commonAI
docMergeStrategy --> commonAI
docExpectedFormats --> commonAI
docIncludeMetadata --> commonAI
classDef aiProcess fill:#fff3e0
classDef docExtract fill:#f3e5f5
classDef common fill:#e1f5fe
classDef input fill:#e8f5e8
class aiProcess,aiPrompt,aiDocuments,aiOutputFormat,aiTitle aiProcess
class docExtract,docPrompt,docDocuments,docOperationType,docProcessIndividually,docChunkAllowed,docMergeStrategy,docExpectedFormats,docIncludeMetadata docExtract
class commonAI common
class user input