* Updated sequence diagram for new Model downloading architecture

* Minor update

* Update sequence.md as well

* Fixing error

* More error fixes
This commit is contained in:
Abhishek Aggarwal 2022-05-24 20:02:42 +02:00 коммит произвёл GitHub
Родитель f376f50d7e
Коммит 3ad908bd19
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 39 добавлений и 14 удалений

Просмотреть файл

@ -3,10 +3,13 @@
This diagram shows a flow of messages and selected calls for specifically the remote language model down(loading) step.
`^` - web worker scripts,
the rest are content scripts
`*` - background script
The rest are content scripts
```mermaid
sequenceDiagram
participant b as backgroundScript*
participant m as mediator
participant t as Translation
participant w as translationWorker^
@ -15,21 +18,35 @@ sequenceDiagram
m->>+t: translate
t-)+w: translate
w->>w: loadTranslationEngine()
w->>w: loadLanguageModel()
w->>w: getLanguageModels()
w->>t: downloadLanguageModels
t->>m: downloadLanguageModels
m->>b: downloadLanguageModels
b->>b: getLanguageModels()
b->>b: getLanguageModel()
b->>b: downloadFile()
b->>b: getItemFromCacheOrWeb()
b->>cache: cache.match(Model)
alt cache match
cache->>b: (Model as Blob)
else cache not matched
b->>b: getItemFromWeb()
b->>gcp: Download Model
gcp->>b: Model
b->>b: digestSha256(Model as Arraybuffer)
Note right of b: Validate Model's hash
b->>cache: cache.put(Model as Blob)
cache->>b: (Model as Blob)
end
b->>m: responseDownloadLanguageModels (Model as Blob)
m->>t: sendDownloadedLanguageModels (Model as Blob)
t->>w: responseDownloadLanguageModels (Model as Blob)
w->>w: loadLanguageModel(Model as Blob)
w->>w: constructTranslationService()
w->>w: constructTranslationModel()
w->>w: constructTranslationModelHelper()
w->>w: downloadFiles()
w->>w: getItemFromCacheOrWeb()
w->>cache: cache.match(Model)
alt cache match
cache->>w: (Model as ArrayBuffer)
else cache not matched
cache->>gcp: Download model
cache->>w: (Model as ArrayBuffer)
end
w->>w: this.digestSha256(arraybuffer)
Note right of w: Validate model's hash
w->>w: fetchFile()
w->>w: Blob.arrayBuffer()
w->>w: prepareAlignedMemoryFromBuffer(buffer, fileAlignment):alignedMemories
w->>w: new WasmEngineModule.AlignedMemoryList(alignedMemories):alignedMemoryList
w->>w: new WasmEngineModule.TranslationModel(alignedMemoryList)

Просмотреть файл

@ -67,7 +67,15 @@ sequenceDiagram
t-)+w: translate
deactivate t
w->>w: load engine
w->>w: load models
w->>t: download models
deactivate w
t->>m: download models
m->>+bg: download models
bg->>bg: download models
bg->>m: models
deactivate bg
m->>t: models
t->>+w: load models
w-)+t: displayOutboundTranslation
t-)+m: displayOutboundTranslation
deactivate t