После создания BedrockRuntimeClient в машинописном тексте я не знаю, как вызвать модель и отправить команду.
const client = new BedrockRuntimeClient({
region: "us-east-1",
apiVersion: '2023-09-30',
credentials:{
accessKeyId: process.env.AWS_ACCESS_KEY_ID ?? '',
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY ?? ''
}
});





Сначала вам нужно создать такой вход:
const input = {
contentType: 'application/json',
accept: '*/*',
modelId: 'stability.stable-diffusion-xl-v0',
body: `{
"text_prompts":[
{
"text":"A beautiful picture of a bird"
}],
"cfg_scale":10,
"seed":0,
"steps":50}`,
};
Затем создайте команду и отправьте ее:
const command = new InvokeModelCommand(input);
const response = await client.send(command);
(вы должны сделать это в асинхронной функции)
Затем преобразуйте ответ в JSON, чтобы получить изображение в формате Base64.
const blobAdapter = response.body;
const textDecoder = new TextDecoder('utf-8');
const jsonString = textDecoder.decode(blobAdapter.buffer);
try {
const parsedData = JSON.parse(jsonString);
return parsedData.artifacts[0].base64
} catch (error) {
console.error('Error parsing JSON:', error);
return 'TextError';
}
Наконец, вы можете делать с base64 все, что захотите, например, поместить его в тег <img>.
<img src = {`data:image/png;base64, ${base64_image}`}>
Вот окончательный код:
export async function functionName(prompt:string){
const client = new BedrockRuntimeClient({
region: "us-east-1",
apiVersion: '2023-09-30',
credentials:{
accessKeyId: process.env.AWS_ACCESS_KEY_ID ?? '',
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY ?? ''
}
});
const input = {
contentType: 'application/json',
accept: '*/*',
modelId: 'stability.stable-diffusion-xl-v0',
body: `{
"text_prompts":[
{
"text":"${prompt}"
}],
"cfg_scale":10,
"seed":0,
"steps":50}`,
};
const command = new InvokeModelCommand(input);
const response = await client.send(command);
const blobAdapter = response.body;
const textDecoder = new TextDecoder('utf-8');
const jsonString = textDecoder.decode(blobAdapter.buffer);
try {
const parsedData = JSON.parse(jsonString);
return parsedData.artifacts[0].base64
} catch (error) {
console.error('Error parsing JSON:', error);
return 'TextError';
}
}
Я надеюсь, что это помогает кому-то.