diff --git a/apiconcepts/translationmemory/translation_provider_plugin.md b/apiconcepts/translationmemory/translation_provider_plugin.md index a328c7c10..694222c9f 100644 --- a/apiconcepts/translationmemory/translation_provider_plugin.md +++ b/apiconcepts/translationmemory/translation_provider_plugin.md @@ -1,6 +1,6 @@ Creating Translation Provider Plug-ins ====== -This section provides an overview of how to create a translation provider plug-in, which allows applications like Var:ProductName to interact with automated translation engines, third-party translation memory implementations or other translation engines. +This section provides an overview of how to create a translation provider plug-in, which allows applications like Var:ProductName to interact with automated translation engines, including AI-based NMT and LLM models, third-party translation memory implementations or other translation engines. Overview ----- diff --git a/articles/hints_tips/AI_Companion/AICompanion.md b/articles/hints_tips/AI_Companion/AICompanion.md index 0ff1edf82..03e494ab3 100644 --- a/articles/hints_tips/AI_Companion/AICompanion.md +++ b/articles/hints_tips/AI_Companion/AICompanion.md @@ -1,5 +1,5 @@ # How to implement AI Companion -The AI Companion API facilitates LLM integration in Trados Studio for translating or reviewing documents. +The AI Assistant consists of two components: the [Translation Provider](../../../apiconcepts/translationmemory/translation_provider_plugin.md) and the AI Companion, as described here. The AI Companion API facilitates LLM integration in Trados Studio for translating or reviewing documents. ## Add the Sdl.LanguagePlatform.TranslationMemoryApi assembly to your project You can add the `Sdl.LanguagePlatform.TranslationMemoryApi` assembly by using the following Trados Studio template in Visual Studio: @@ -26,6 +26,23 @@ These data models are used in implementing an AI Companion plugin for Trados Stu The data models used in communicating between an AI Companion and Trados Studio are found under the `Sdl.LanguagePlatform.TranslationMemoryApi.LiteBCM` namespace. +For easier navigation, the Lite BCM diagram was split in three separate sections. + +### Structure +This section represents the top-most structure of the Lite BCM model. + + + +### File Skeleton +This section shows what the file skeleton can contain. This section is referred by the Structure section. + + + +### Markup (Content) +This section shows how markup data is represented to hold the actual content of the documents. This section is referred by the Structure section. + + + ## Sample Implementation The following example illustrates a basic implementation of the [IAICompanion](../../../api/translationmemory/Sdl.LanguagePlatform.TranslationMemoryApi.AICompanion.IAICompanion.yml) interface. diff --git a/articles/hints_tips/AI_Companion/images/LiteBcmMarkup.svg b/articles/hints_tips/AI_Companion/images/LiteBcmMarkup.svg new file mode 100644 index 000000000..46268b372 --- /dev/null +++ b/articles/hints_tips/AI_Companion/images/LiteBcmMarkup.svg @@ -0,0 +1,4 @@ + + + +
MarkupData
MarkupData
+ Id: string
+ Id: string
+ Parent: MarkupDataContainer
+ Parent: MarkupDataContainer
+ ParentFragment: LiteFragment
+ ParentFragment: LiteFragment
+ ParentParagraph: Paragraph
+ ParentParagraph: Paragraph
+ ParentParagraphUnit: ParagraphUnit
+ ParentParagraphUnit: ParagraphUnit
+ Ancestors: IEnumerable<MarkupDataContainer>
+ Ancestors: IEnumerable<MarkupDataContainer>
+ ParentSegment: Segment
+ ParentSegment: Segment
+ IsContainer: bool
+ IsContainer: bool
+ IndexInParent: int
+ IndexInParent: int
TextMarkup
TextMarkup
+ Id: string
+ Id: string
+ Text: string
+ Text: string
PlaceholderTag
PlaceholderTag
+ PlaceholderTagDefinitionId: int
+ PlaceholderTagDefinitionId: int
+ TagNumber: string
+ TagNumber: string
+ Definition: PlaceholderTagDefinition
+ Definition: PlaceholderTagDefinit...
MarkupDataContainer
MarkupDataContainer
+ Children: IReadOnlyCollection<MarkupData>
+ Children: IReadOnlyCollection<MarkupData>
+ AllSubItems: IEnumerable<MarkupData>
+ AllSubItems: IEnumerable<MarkupData>
+ Count: int
+ Count: int
Segment
Segment
+ ConfirmationLevel: ConfirmationLevel
+ ConfirmationLevel: Confi...
+ IsLocked: bool
+ IsLocked: bool
+ SegmentNumber: string
+ SegmentNumber: string
+ TranslationOrigin: TranslationOrigin
+ TranslationOrigin: Trans...
+ SiblingSegment: Segment
+ SiblingSegment: Segment
ConfirmationLevel
ConfirmationLevel
NotTranslated: Default
NotTranslated: Default
Draft
Draft
Translated
Translated
RejectedTranslation
RejectedTranslation
ApprovedTranslation
ApprovedTranslation
RejectedSignOff
RejectedSignOff
ApprovedSignOff
ApprovedSignOff
TranslationOrigin
TranslationOrigin
+ OriginType: string
+ OriginType: st...
+ OriginSystem: string
+ OriginSystem:...
+ MatchPercent: int
+ MatchPercent:...
+ CreatedBy: string
+ CreatedBy: str...
+ CreatedOn: DateTime?
+ CreatedOn: Dat...
+ ModifiedBy: string
+ ModifiedBy: st...
+ ModifiedOn: DateTime?
+ ModifiedOn: Da...
LockedContentContainer
LockedContentContainer
AnnotationContainer
AnnotationContainer
+ AnnotationId: int
+ AnnotationId: int
RevisionContainer
RevisionContainer
+ RevisionType: RevisionType
+ RevisionType: Rev...
TagPair
TagPair
+ TagPairDefinitionId: int
+ TagPairDefinitio...
+ TagNumber: string
+ TagNumber: string
+ Definition: TagPairDefinition
+ Definition: TagP...
RevisionType
RevisionType
Inserted: Default
Inserted: Defau...
Deleted
Deleted
Unchanged
Unchanged
CommentContainer
CommentContainer
+ CommentDefinitionId: int
+ CommentDefinitionId: int
+ Definition: CommentDefinition
+ Definition: CommentDefinition
TerminologyAnnotationContainer
TerminologyAnnotationContainer
+ TerminologyDataId: int
+ TerminologyDataId: int
+ Definition: TerminologyData
+ Definition: TerminologyData
DefaultTranslationOrigin
DefaultTranslationOrigin
+ Interactive: string
+ Interactive: string
+ DocumentMatch: string
+ DocumentMatch: string
+ MachineTranslation: string
+ MachineTranslation: string
+ TranslationMemory: string
+ TranslationMemory: string
+ NotTranslated: string
+ NotTranslated: string
+ AutoPropagated: string
+ AutoPropagated: string
+ Source: string
+ Source: string
+ AutomatedAlignment: string
+ AutomatedAlignment: string
+ Unknown: string
+ Unknown: string
+ ReverseAlignment: string
+ ReverseAlignment: string
+ AdaptiveMachineTranslation: string
+ AdaptiveMachineTranslation: stri...
+ NeuralMachineTranslation: string
+ NeuralMachineTranslation: string
+ AutomaticTranslation: string
+ AutomaticTranslation: string
LiteBcmVisitor
LiteBcmVisitor
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Use
Use
ConfirmationLevel
ConfirmationLevel
TranslationOrigin
TranslationOrigin
OriginType
OriginType
RevisionType
RevisionType
Paragraph
Paragraph
Structure
Structure
LiteFragment
LiteFragment
ParagraphUnit
ParagraphUnit
Use
Use
Use
Use
Text is not SVG - cannot display
\ No newline at end of file diff --git a/articles/hints_tips/AI_Companion/images/LiteBcmSkeleton.svg b/articles/hints_tips/AI_Companion/images/LiteBcmSkeleton.svg new file mode 100644 index 000000000..2749cc4a4 --- /dev/null +++ b/articles/hints_tips/AI_Companion/images/LiteBcmSkeleton.svg @@ -0,0 +1,4 @@ + + + +
1
1
0..*
0..*
1
1
0..*
0..*
1
1
0..*
0..*
1
1
0..*
0..*
Use
Use
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Extends
Use
Use
Terms
Terms
1
1
0..*
0..*
Definition
Definition
IdGenerator
IdGenerator
CommentDefinitions
CommentDefinitions
TagPairDefinitions
TagPairDefinitions
PlaceholderTagDefinitions
PlaceholderTagDefinitions
IdGenerator
IdGenerator
TerminologyData
TerminologyData
File
File
LiteFragment
LiteFragment
Structure
Structure
SkeletonCollectionKey
SkeletonCollectionKey
+ Id: int
+ Id: int
PlaceholderTagDefinition
PlaceholderTagDefinition
+ Id: int
+ Id: int
+ DisplayText: string
+ DisplayText: string
+ TagContent: string
+ TagContent: string
TerminologyData
TerminologyData
+ Id: string
+ Id: string
+ Terms: IList<Term>
+ Terms: IList<Term>
CommentDefinition
CommentDefinition
+ Id: string
+ Id: string
+ Text: string
+ Text: string
TagPairDefinition
TagPairDefinition
+ Id: string
+ Id: string
+ StartTagContent: string
+ StartTagContent: string
+ EndTagContent: string
+ EndTagContent: string
+ StartTagDisplayText: string
+ StartTagDisplayText: str...
+ EndTagDisplayText: string
+ EndTagDisplayText: string
SkeletonItem
SkeletonItem
+ Id: int
+ Id: int
Term
Term
+ Id: string
+ Id: string
+ Text: string
+ Text: string
Use
Use
Use
Use
FileSkeleton
FileSkeleton
+ PlaceholderTagDefinitions: SkeletonCollection<PlaceholderTagDefinition>
+ PlaceholderTagDefinitions: SkeletonCollection<PlaceholderTagDefini...
+ FileId: string
+ FileId: string
+ CommentDefinitions: SkeletonCollection<CommentDefinition>
+ CommentDefinitions: SkeletonCollection<CommentDefinition>
+ TagPairDefinitions: SkeletonCollection<TagPairDefinition>
+ TagPairDefinitions: SkeletonCollection<TagPairDefinition>
+ TerminologyData: SkeletonCollection<TerminologyData>
+ TerminologyData: SkeletonCollection<TerminologyData>
+ ParentFile: File
+ ParentFile: File
+ IdGenerator: IdGenerator
+ IdGenerator: IdGenerator
SkeletonCollection<T>
SkeletonCollection<T>
+ IdGenerator: IdGenerator
+ IdGenerator: IdGenerator
+ ParentSkeleton: FileSkeleton
+ ParentSkeleton: FileSkeleton
ISkeletonItemReference<T>
ISkeletonItemReference<T>
+ Definition: T
+ Definition: T
Text is not SVG - cannot display
\ No newline at end of file diff --git a/articles/hints_tips/AI_Companion/images/LiteBcmStructure.svg b/articles/hints_tips/AI_Companion/images/LiteBcmStructure.svg new file mode 100644 index 000000000..92de4be11 --- /dev/null +++ b/articles/hints_tips/AI_Companion/images/LiteBcmStructure.svg @@ -0,0 +1,4 @@ + + + +
LiteDocument
LiteDocument
+ Id: string
+ Id: string
+ Name: string
+ Name: string
+ File: File
+ File: File
+ SourceLanguageCode: string
+ SourceLanguageCode: string
+ TargetLanguageCode: string
+ TargetLanguageCode: string
+ ModelVersion: string
+ ModelVersion: string
+ IdGenerator: IdGenerator
+ IdGenerator: IdGenerator
File
File
+ Id: string
+ Id: string
+ Skeleton: FileSkeleton
+ Skeleton: FileSkeleton
+ ParagraphUnits: ParagraphUnitCollection
+ ParagraphUnits: Paragrap...
+ Parent: LiteDocument
+ Parent: LiteDocument
+ IdGenerator: IdGenerator
+ IdGenerator: IdGenerator
ParagraphUnit
ParagraphUnit
+ Id: string
+ Id: string
+ ParentFileId: string
+ ParentFileId: stri...
+ Source: Paragraph
+ Source: Paragraph
+ Target: Paragraph
+ Target: Paragraph
+ IsLocked: bool
+ IsLocked: bool
+ ParentFile: File
+ ParentFile: File
+ SegmentPairs: SegmentPairCollection
+ SegmentPairs: Segm...
+ Index: int
+ Index: int
1
1
0..*
0..*
LiteFragment
LiteFragment
+ SourceLanguageCode: string
+ SourceLanguageCode: st...
+ TargetLanguageCode: string
+ TargetLanguageCode: st...
+ DocumentId: string
+ DocumentId: string
+ Skeleton: FileSkeleton
+ Skeleton: FileSkeleton
+ SourceContent: MarkupData
+ SourceContent: MarkupD...
+ TargetContent: MarkupData
+ TargetContent: MarkupD...
+ Index: int?
+ Index: int?
Paragraph
Paragraph
SegmentPairCollection
SegmentPairCollection
SegmentPair
SegmentPair
+ Source: Segment
+ Source: Segme...
+ Target: Segment
+ Target: Segme...
IdGenerator
IdGenerator
ParagraphUnitCollection
ParagraphUnitCollection
+ ParentFile: File
+ ParentFile: File
+ AllSegmentPairs: IEnumerable<SegmentPair>
+ AllSegmentPairs: IEnumerable...
+ SegmentCount: int
+ SegmentCount: int
Use
Use
1
1
0..*
0..*
1
1
0..*
0..*
Source
Source
Target
Target
Source
Source
Target
Target
Skeleton
Skeleton
Skeleton
Skeleton
IdGenerator
IdGenerator
IdGenerator
IdGenerator
ParagraphUnits
ParagraphUnits
FileSkeleton
FileSkeleton
MarkupData
MarkupData
Source
Source
Target
Target
File
File
Skeleton
Skeleton
Markup (Content)
Markup (Content)
Text is not SVG - cannot display
\ No newline at end of file