ai context loop
This commit is contained in:
parent
07d8a6471b
commit
3143e3a052
1 changed files with 217 additions and 0 deletions
217
poweron/implementation/implementation_ai_processing_flows.md
Normal file
217
poweron/implementation/implementation_ai_processing_flows.md
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
### AI process with prompt, documents, and outputFormat
|
||||
|
||||
```mermaid
|
||||
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
|
||||
|
||||
```mermaid
|
||||
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
|
||||
|
||||
```mermaid
|
||||
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
|
||||
|
||||
```mermaid
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
Loading…
Reference in a new issue