aws-genai-llm-chatbot
44 строки · 1.3 Кб
1import * as cdk from "aws-cdk-lib";
2import { Construct } from "constructs";
3import * as path from "path";
4import { DeploymentType, SageMakerModel } from "../../sagemaker-model";
5import { Shared } from "../../shared";
6import { SystemConfig } from "../../shared/types";
7import { NagSuppressions } from "cdk-nag";
8
9export interface SageMakerRagModelsProps {
10readonly config: SystemConfig;
11readonly shared: Shared;
12}
13
14export class SageMakerRagModels extends Construct {
15readonly model: SageMakerModel;
16
17constructor(scope: Construct, id: string, props: SageMakerRagModelsProps) {
18super(scope, id);
19
20const sageMakerEmbeddingsModelIds = props.config.rag.embeddingsModels
21.filter((c) => c.provider === "sagemaker")
22.map((c) => c.name);
23
24const sageMakerCrossEncoderModelIds = props.config.rag.crossEncoderModels
25.filter((c) => c.provider === "sagemaker")
26.map((c) => c.name);
27
28const model = new SageMakerModel(this, "Model", {
29vpc: props.shared.vpc,
30region: cdk.Aws.REGION,
31model: {
32type: DeploymentType.CustomInferenceScript,
33modelId: [
34...sageMakerEmbeddingsModelIds,
35...sageMakerCrossEncoderModelIds,
36],
37codeFolder: path.join(__dirname, "./model"),
38instanceType: "ml.g4dn.xlarge",
39},
40});
41
42this.model = model;
43}
44}
45