В современном технологическом ландшафте интеграция искусственного интеллекта уже не роскошь, а необходимость.
Приложения на базе ИИ способны изменить пользовательский опыт, автоматизировать сложные задачи и открыть новые возможности. Понимание и использование API-интерфейсов ИИ — важнейший навык для разработчиков, стремящихся быть в авангарде инноваций.
Краткий обзор API-интерфейсов искусственного интеллекта
API-интерфейсы искусственного интеллекта — это мощные инструменты, позволяющие разработчикам использовать возможности предварительно обученных моделей машинного обучения. Эти API открывают такие функции, как обработка естественного языка, компьютерное зрение и другие, позволяя разработчикам легко внедрять передовые возможности искусственного интеллекта в свои приложения.
Вам больше не нужно разбираться в эпохах обучения и архитектуре нейронных сетей, чтобы использовать ИИ в своих проектах и создавать невероятно мощные функции для своих пользователей.
Цель данного учебного пособия:
Цель этого урока — дать вам знания и практические навыки, необходимые для беспрепятственной интеграции AI API в ваши проекты.
Я проведу вас через весь процесс, начиная с выбора подходящего API для ваших конкретных нужд и заканчивая практической реализацией и лучшими практиками для бесшовной интеграции.
В итоге вы будете хорошо подготовлены к внедрению интеллекта на основе ИИ в свои приложения, что откроет перед вами мир новых возможностей.
Так давайте же вместе отправимся в это путешествие и раскроем истинный потенциал AI API.
Текущие возможности AI API
Сейчас становится все больше и больше сервисов искусственного интеллекта, доступных через простой API, чем когда-либо прежде. В этой статье мы будем использовать Amazon Bedrock, но их существует гораздо больше. Даже в Amazon Bedrock доступно 6 моделей, а в будущем появятся новые.
Сравнение доступных API для искусственного интеллекта
Чтобы помочь вам принять взвешенное решение, давайте сравним некоторые из ведущих API-интерфейсов искусственного интеллекта, представленных на рынке. Ниже приведена сравнительная таблица некоторых известных вариантов:
API | Описание | Цена | Стоимость |
---|---|---|---|
GPT-3.5 (16 тыс.) | Передовая языковая модель, способная как понимать, так и генерировать естественный язык или код | 0,0003 долл. за 1000 входных лексем 0,004 долл. за 1000 выходных лексем | |
GPT-4 (32K) | Самая совершенная система OpenAI, создающая более безопасные и полезные ответы | $0.06/ 1000 входных лексем $0.12/ 1000 выходных лексем | |
A2I Jurassic-2 Mid model (Bedrock) | Модель среднего размера, разработанная для достижения баланса между исключительным качеством и доступной ценой | $0,0125/ 1000 входных жетонов $0,0125/ 1000 выходных жетонов | |
A2I Jurassic-2 Ultra (Bedrock) | Самая мощная модель AI21, обеспечивающая исключительное качество | $0,0188/ 1000 входных жетонов $0,0188/ 1000 выходных жетонов | |
Anthropic Claude Instant (Bedrock) | Передовая крупноязычная модель общего назначения | $0.00163/ 1000 входных лексем $0.01102/ 1000 выходных лексем | |
Stability AI (Bedrock) | Генерация изображений | $0.018 — $0.072 за изображение в зависимости от размера и качества |
Ключевые факторы, которые необходимо учитывать при выборе API
При выборе AI API для своего проекта важно учитывать несколько ключевых факторов:
- ** Возможности и особенности API: ** Оцените конкретные функциональные возможности, предлагаемые API, и убедитесь, что они соответствуют требованиям вашего проекта. Качество генерируемого контента также может сильно различаться между моделями, поэтому целесообразно протестировать их и посмотреть, насколько хорошо они подходят для вашего случая использования.
- Масштабируемость и производительность: Оцените способность API работать с различными рабочими нагрузками и убедитесь, что он соответствует вашим ожиданиям по производительности, особенно в пиковые нагрузки.
- Стоимость: Понять модель ценообразования API, включая любые сопутствующие расходы на использование, и определить, насколько она соответствует вашему бюджету.
- 4. Конфиденциальность и безопасность данных: Убедитесь, что поставщик API соблюдает правила защиты данных и принимает надежные меры безопасности для защиты конфиденциальной информации.
Приняв во внимание эти факторы, вы сможете выбрать API для искусственного интеллекта, наиболее полно отвечающий потребностям вашего проекта.
В данном руководстве мы будем использовать Amazon Bedrock, используя A2I Jurassic-2 Mid model.
Как запросить доступ к модели
Поскольку данный сервис является новым, вам необходимо запросить доступ к моделям, которые вы хотите использовать.
Для этого войдите в свою учетную запись AWS, найдите «Bedrock» и выберите вкладку «Base models» слева. Наведите курсор мыши на любую модель, и появится сообщение о том, что в настоящее время у вас нет доступа, и о необходимости запросить доступ в разделе «Model Access».
Здесь перечислены все модели. Нажмите кнопку редактирования в правом верхнем углу, выберите модели, к которым вы хотите получить доступ, и нажмите кнопку «Сохранить». Для этого вам нужно выбрать Jurassic-2 Ultra
и Jurassic-2 Mid
.
Выберите модели, для которых вы хотите запросить доступ
Одобрение займет всего минуту или две, но лучше сделать это как можно скорее.
Проект: Построение API для планирования праздников
Что будет делать наш API
Наш API предназначен для упрощения планирования отпуска. Указав код штата места назначения и продолжительность визита, мы составим индивидуальный маршрут, предложив лучшие развлечения и места для посещения.
Как настроить Repo
В этом проекте мы будем использовать Serverless Framework. Если вы никогда не использовали его раньше, то можете последовать этому краткому руководству по установке Serverless и все настроить.
В этом проекте мы будем использовать JavaScript, поэтому создайте новое репо следующим образом:
sls create --template aws-nodejs --path aiTourGuide
Создание лямбды с комментариями
Для начала нам нужно создать нашу лямбда-функцию. Я предпочитаю хранить ее в папке /src/functions/{functionName}/index.js
. В данном случае имя моей функции будет aiTourGuide
.
В новом файле index.js
мы можем начать с этого кода. Он пытается получить из запроса состояние и продолжительность, а затем возвращает ответ.
exports.handler = async (event) => {
const { state_code, duration } = JSON.parse(event.body);
// Код для генерации маршрута будет находиться здесь
const response = {
statusCode: 200,
body: JSON.stringify('Маршрут сгенерирован успешно!'),
};
return response;
};
Подпишитесь на API Службы национальных парков
Теперь мы хотим получить некоторые данные для передачи искусственному интеллекту. Мы могли бы просто попросить его сгенерировать для нас маршрут, но если предоставить ему конкретные данные для работы, то результат обычно оказывается гораздо лучше.
- Зайдите на сайт [National Park Service API website] (https://www.nps.gov/subjects/developer/get-started.htm) и зарегистрируйте API-ключ.
- После регистрации вы получите по электронной почте API-ключ для доступа к их сервисам.
Добавьте вызов API Службы национальных парков в лямбду
const axios = require('axios');
const parksApiKey = process.env.parksApiKey
exports.handler = async (event) => {
const { state_code, duration } = JSON.parse(event.body);
// Выполняем запрос к API Службы национальных парков
const parksApiUrl = `https://developer.nps.gov/api/v1/parks?stateCode=${state_code}&api_key=${parksApiKey}`.
const parksResponse = await axios.get(parksApiUrl);
// Извлечение соответствующих данных из ответа
const parks = parksResponse.data.data.map(park => {
return {
name: park.fullName,
описание: park.description
};
});
// Код для генерации маршрута с данными о парке будет находиться здесь
const responseBody = parks;
const response = {
statusCode: 200,
body: JSON.stringify(responseBody)
};
return response;
};
Мы делаем запрос к API парков с помощью Axios, а затем получаем из ответа только название
и описание
каждого парка. Сейчас мы просто вернем эти данные в API и посмотрим, что мы получим.
Одна вещь, которую мы делаем, — это получение parksApiKey
из переменных окружения в начале файла. Чтобы добавить parksApiKey
в качестве переменной окружения в файл Serverless Framework serverless.yml
, можно выполнить следующие действия:
- Откройте файл
serverless.yml
в текстовом редакторе. - Найдите секцию
provider
, в которой определяются настройки провайдера AWS. Под ней добавьте блокenvironment
, если он еще не существует. - В блоке
environment
определите переменную окружения следующим образом:
provider:
имя: aws
время выполнения: nodejs18.x
окружение:
parksApiKey: 'YOUR API KEY'
Настройка конфигурации Serverless.yml
Чтобы развернуть API и наш код, нам нужно указать Serverless, что именно развертывать. Для этого мы изменим секцию functions
в конфигурации.
functions:
aiTourGuide:
handler: src/functions/aiTourGuide/index.handler
события:
- httpApi:
path: /tourguide
метод: post
Это означает, что мы развернем лямбда-функцию aiTourGuide
с конечной точкой post API, указывающей на /tourguide
. Просто убедитесь, что в секции handler указан правильный путь для вашего репо и структуры папок.
Если у вас есть configured your AWS credentials to a specific profile, вам необходимо добавить это в секцию provider, иначе будут использоваться учетные данные AWS по умолчанию.
provider: имя: aws;
runtime: nodejs18.x;
profile: 'Ваш профиль'; // опционально
Развертывание и тестирование
Теперь, когда мы создали нашу функцию Lambda и интегрировали API Службы национальных парков, пришло время развернуть и протестировать наш API планирования отдыха.
- Развертывание: Все, что нам нужно сделать, — это запустить
sls deploy
еще раз, и наши изменения будут развернуты. - Тестирование: С помощью инструмента типа Postman отправьте POST-запрос к вашему API с необходимыми параметрами, такими как
state_code
иduration
. Вы должны получить ответ следующего вида.
Изображение, показывающее ответ
Видно, что у нас есть массив объектов с названием парка и описанием. Именно то, что мы хотели.
Как подготовить наш искусственный интеллект
Далее мы подготовим запрос к API искусственного интеллекта для улучшения рекомендаций по планированию отдыха. Мы будем использовать модель A2I Jurassic-2 Mid с помощью Amazon Bedrock для создания увлекательных описаний рекомендуемых мероприятий.
Как правило, я начинаю с относительно простых подсказок и совершенствую их по мере того, как вижу, как они работают. Я также оборачиваю свою генерацию подсказок в функцию. Впоследствии она может стать довольно большой и сложной, поэтому удобнее не размещать ее в основном обработчике. Часто я размещаю его в отдельном файле!
Начнем с чего-то подобного:
const generatePrompt = ({ parks, duration }) => {
const stringListOfParks = parks.map(({ название, описание }) => {
return `Название парка: ${name}:
description: ${description}`;
}).join(`
`);
const prompt = `Вы являетесь экспертом-гидом в США, который специализируется на разработке итинаров для отдыха в национальных парках.
Я собираюсь дать вам описание нескольких парков в этом районе, а также указать продолжительность поездки.
Составьте маршрут для этой поездки, указав, какие мероприятия можно провести в каждый день.
Продолжительность поездки = ${длительность} дней
Местные национальные парки:
${stringListOfParks}
`;
return prompt;
};
Функция stringListOfParks
превращает массив объектов в длинную строку. Возможно, в этом нет необходимости, но подождем и посмотрим.
Затем мы создаем подсказку для ИИ. Мы говорим ИИ, кем он должен быть, какую информацию мы собираемся ему дать и что мы хотим, чтобы он сделал. Для начала все будет в порядке, но со временем мы можем протестировать различные изменения в подсказке, чтобы увидеть, что дает наилучшие результаты.
Как вызвать AI API
Теперь, когда у нас есть подсказка, мы можем передать ее в Amazon Bedrock для обработки нашей подсказки. Для этого нужно импортировать AWS SDK и создать bedrockruntime
.
Вам также потребуется установить AWS SDK для bedrock, поскольку в настоящее время он не включен ни в одну из версий лямбды:
npm i -S @aws-sdk/client-bedrock-runtime
И добавляем этот код в верхнюю часть нашего файла Lambda.
import { BedrockRuntime } from '@aws-sdk/client-bedrock-runtime';
import axios from 'axios';
const bedrockruntime = new BedrockRuntime();
Мы также используем импорт, а это значит, что нам нужно изменить наш файл index.js
на index.mjs
. Если бы вы делали это с помощью TypeScript, то переименовывать файл не пришлось бы.
Нам нужно вызвать команду invokeModel
и передать ей набор параметров. Я считаю, что проще создать отдельный объект для параметров, чем делать это в одном месте.
В настоящее время не существует асинхронной версии команды invokeModel
, поэтому мы обернем ее в обещание.
const aiPrompt = generatePrompt({ parks, duration });
const aiModelId = 'ai21.j2-mid-v1'; // мы используем модель A2I Jurassic-2 Mid
const invokeModelParams = {
body: JSON.stringify({
prompt: aiPrompt,
maxTokens: 200,
температура: 0.5,
topP: 0.5, // необязательно
}),
modelId: aiModelId,
accept: 'application/json',
contentType: 'application/json',
};
const aiResponse = await new Promise((resolve, reject) => {
bedrockruntime.invokeModel(invokeModelParams, function (err, data) {
if (err) {
reject(err); // произошла ошибка
} else {
resolve(data); // успешный ответ
}
});
});
// Извлечение сгенерированного ИИ текста из ответа
const aiResponseJson = JSON.parse(new TextDecoder().decode(aiResponse.body));
const aiItinerary = aiResponseJson.completions[0].data.text;
const responseBody = aiItinerary;
const response = {
statusCode: 200,
body: responseBody,
};
return response;
Вы можете заметить, что в body мы передаем не только наш запрос. Это связано с тем, что мы можем изменить некоторые другие параметры, чтобы получить другой результат.
LLM работают, выбирая следующее слово в предложении. Параметры temperature
и topP
управляют тем, выбирает ли модель необычные слова или придерживается наиболее вероятного слова.
- Температура: Ближе к 1 означает, что будут выбраны более необычные слова, ближе к 0 — более вероятные.
- topP: При выборе следующего слова ограничивает количество вариантов, из которых ИИ может выбирать, суммируя вероятности. Числа ближе к 1 означают, что будут выбраны более маловероятные слова.
В нашем случае мы хотим, чтобы ответ был относительно творческим, но в то же время правильным, поэтому 0,5 — хорошее начальное значение для обоих вариантов. Если бы мы попросили его описать фантастическую сцену, мы бы выбрали значение temp=0,7 topP=0,8, или если бы мы попросили его написать код обработки данных, мы бы снизили значение до 0,2, так как мы хотим получить ответ, который с большей вероятностью будет правильным.
Эти параметры можно менять и тестировать, чтобы определить, какие значения дают наилучшие результаты. То, какие параметры вы передаете, также [зависит от модели] (https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html).
Как добавить разрешения IAM для вызова Bedrock
Если вашей функции Lambda требуется доступ к ресурсам AWS или сервисам, таким как Amazon Bedrock, необходимо настроить соответствующие разрешения IAM.
В файле serverless.yml в разделе provider необходимо добавить следующее. Это означает, что данная Lambda имеет разрешение на использование bedrock:InvokeModel
.
provider:
имя: aws
время выполнения: nodejs18.x
окружение:
parksApiKey: ВАШ КЛЮЧ API
iam:
роль:
statements:
- Effect: "Allow"
Действие:
- "bedrock:InvokeModel"
Ресурс: "*"
Развертывание и тестирование (снова)
После интеграции AI API и обеспечения соответствующих IAM-прав повторно разверните функцию Lambda, выполнив sls deploy
. После этого мы можем еще раз протестировать ее, чтобы убедиться, что сгенерированный искусственным интеллектом маршрут отдыха работает правильно.
Используя тот же запрос, что и в прошлый раз, я получил вот такой ответ, и вы должны получить нечто похожее.
День 1:
- Прибытие в Джексон, штат Миссисипи, и заселение в отель.
- Посещение национального монумента «Дом Медгара и Мирли Эверс».
- Ночь в Джексоне.
День 2:
- Поездка в Натчез, штат Миссисипи, и регистрация в отеле.
- Посетите Национальный исторический парк Натчез.
- Ночь в Натчезе.
День 3:
- Поездка в Виксбург, штат Миссисипи, и заселение в отель.
- Посещение Национального военного парка Виксбурга.
- Ночь в Виксбурге.
День 4:
- Поездка в Тупело, штат Миссисипи, и регистрация в отеле.
- Посещение Национального поля битвы в Тупело.
- Ночь в Тупело.
День 5:
- Поездка в Коринф, штат Миссисипи, и заселение в отель.
- Посещение Национального военного парка Шилох.
- Ночь в Коринфе.
День 6:
- Переезд в Джексон, штат Миссисипи, и регистрация в отеле.
- Посещение национального поля боя Брикс Кросс Роудс.
- Ночь в Джексоне.
День 7:
- Поездка в Национальный морской заповедник островов Персидского залива и регистрация в отеле.
Исправления в коде
Имеется несколько небольших проблем:
- Он обрывается на половине 7-го дня, хотя мы говорили о 8 днях.
- Описания не очень интересны.
Как увеличить лимит токенов
Причина обрыва ответа заключается в том, что мы изначально передали maxTokens: 200
в нашей команде AI. Это можно легко исправить, увеличив это число.
Мы можем установить очень высокое значение, например 10 000, но при этом нам все равно придется платить за все сгенерированные токены. Установка значения 10 000 не сделает каждый ответ длиной в 10 000 токенов, но наличие более разумного лимита защитит нас от неожиданного счета от AWS.
Я установил значение 1000. Если вы хотите пофантазировать, то можете изменить это значение в зависимости от количества дней, на которые они едут.
Как улучшить маршрут
С этим вопросом немного сложнее. Проблема в том, что он очень скучен и повторяет множество пунктов: «Поездка сюда и заселение в отель», «Ночевка в Y».
Мы можем попробовать улучшить нашу подсказку, чтобы получить лучший результат. Во-первых, давайте прямо скажем, что не нужно рассказывать о том, что нужно ехать или заселяться в отель.
// Новое содержание
Не пишите о вождении автомобиля. Не пишите о заселении в гостиницы. Не пишите о том, где переночевать.
Мы также можем попросить дать более описательный результат. Я добавил еще одну строку в подсказку:
Дайте описание того, что они увидят и чем можно заняться в каждом парке.
Одним из приемов для переразвертывания, когда вы изменили только код, является развертывание функций. Вы можете выполнить команду sls deploy function -f {function name}
, которая в нашем случае будет sls deploy function -f aiTourGuide
. Это намного быстрее, чем развертывание всего приложения, что позволяет быстрее провести тестирование и, следовательно, быстрее выполнить итерацию.
Неудачные попытки улучшения
Внеся это изменение, я надеялся, что результат улучшится, но этого не произошло. Я перепробовал около 15 различных запросов, и все они имели одинаковую структуру и игнорировали мои указания не говорить об отелях, поездках или ночевках.
Вариант 2 — изменить другие параметры
Если ИИ постоянно дает очень похожие и скучные ответы, можно начать изменять другие параметры. Чтобы повысить креативность ИИ, увеличьте температуру. Я выбрал значение 0,8.
Это должно заставить ИИ выбирать более необычные слова и создавать менее структурированные и более случайные ответы.
К сожалению, ответ получился практически идентичным.
Вариант 3 — изменить модель
Одним из замечательных моментов в использовании Bedrock является наличие нескольких моделей, и переключение между ними может быть очень простым.
До сих пор мы использовали модель Jurassic-2 Mid
, но она не подходит для этой задачи. Возможно, она хороша для более мелких подсказок или более простых задач. Пока же мы можем перейти на использование Jurassic-2 Ultra
. Самое удивительное, что это всего лишь одна строка кода:
const aiModelId = 'ai21.j2-ultra-v1'; // раньше было ai21.j2-mid-v1
ВПоскольку они принадлежат одной и той же компании, то имеют одинаковые параметры. Если вы хотите переключиться на одну из других моделей, то, возможно, придется изменить еще несколько параметров в теле invokeModelParams
.
Единственное, что я советую сделать с этой более крупной моделью, — увеличить таймаут Lambda. По умолчанию он составляет 6 с, но иногда этого недостаточно.
функции:
aiTourGuide:
handler: src/functions/aiTourGuide/index.handler
таймаут: 26 # < новая строка конфигурации
события:
- httpApi:
path: /tourguide
метод: post
Результаты
С обновленной подсказкой и новой моделью мы получаем гораздо лучший результат:
_День 1: Начните свое путешествие с осмотра Национального поля боя Брайс-Кросс-Роудс. Вы узнаете о том, что победа конфедератов при Брайс-Кросс-Роудс стала значительной для генерал-майора Натана Бедфорда Форреста, но ее долгосрочное влияние на ход войны оказалось дорогостоящим для конфедератов. Брайс-Кросс-Роудс — прекрасный пример того, как можно выиграть битву, но проиграть войну.
День 2: Сегодня вы посетите Национальный памятник Эмметту Тиллу и Мейми Тилл-Мобли. В 1955 г. 14-летний Эммет Тилл приехал в город Мони, штат Миссисипи, чтобы навестить родственников. Он был похищен, подвергнут пыткам и убит после того, как якобы свистнул в адрес белой женщины. Его мать, Мэйми Тилл-Мобли, настояла на похоронах с открытым гробом недалеко от их родного города Чикаго. Ее смелое решение позволило миру увидеть расистское насилие, которому подвергся ее сын, и положило начало движению за гражданские права.
День 3: Национальное морское побережье островов Персидского залива — идеальное место для посещения сегодня. Миллионы посетителей привлекают изумрудные воды Мексиканского залива, великолепные белые пляжи, плодородные болота и исторические ландшафты Gulf Islands National Seashore. Приезжайте на экскурсию вместе с нами!
День 4: Следующий по списку — Национальный монумент «Дом Медгара и Мирли Эверс». Медгар и Мирли Эверс были партнерами в борьбе за гражданские права. Убийство Медгара Эверса в гараже их дома 12 июня 1963 г. стало первым убийством общенационально значимого лидера американского движения за гражданские права и послужило катализатором принятия Закона о гражданских правах 1964 года. Мирли Эверс продолжала отстаивать вопросы расового равенства и социальной справедливости.
День 5: Национальный исторический парк Натчез — прекрасное место для посещения сегодня. Откройте для себя историю всех народов, населяющих Натчез, штат Миссисипи, от европейского заселения, африканского рабства, американской хлопковой экономики до борьбы за гражданские права в низовьях реки Миссисипи.
День 6: Сегодня вы отправитесь на экскурсию по Национальной живописной тропе Натчез-Трейс (Natchez Trace National Scenic Trail). Национальная пешеходная тропа Натчез-Трейс — это пять участков пешеходной тропы, проходящей примерно параллельно 444-мильной живописной автомобильной дороге Натчез-Трейс Парквей. Общая протяженность пешеходных троп составляет более 60 миль, что позволяет исследовать водно-болотные угодья, болота, лиственные леса и познакомиться с историей этой местности. Информацию о том, что открыто и что закрыто, можно найти на сайте www.nps.gov/natr/planyourvisit/what-is-open-what-is-closed.htm.
День 7: Парковая дорога Natchez Trace Parkway — идеальное место для посещения сегодня. Natchez Trace Parkway — это 444-мильная рекреационная дорога и живописный маршрут, проходящий через три штата. Она проходит по «Старому Натчезскому тракту» — историческому коридору, по которому ездили американские индейцы, «кайнтуки», европейские поселенцы, работорговцы, солдаты и будущие президенты. Сегодня вдоль Паркуэя можно не только проехать, но и совершить пешие, велосипедные, конные прогулки, а также разбить палаточный лагерь.
День 8: Завершите свое путешествие знакомством с Национальным военным парком Шилох (Shiloh National Military Park). Посетите места самого грандиозного сражения на западном театре Гражданской войны. Почти 110 000 американских солдат сражались в кровавом поединке, в результате которого погибло 23 746 человек — больше, чем во всех предыдущих войнах Америки, вместе взятых. Исследуйте поля сражений в Шилохе и Коринфе, чтобы узнать, как эта битва повлияла на солдат и на всю страну.
Затем я решил попробовать это с моделями Claude Instant, чтобы посмотреть, насколько хорошо это получается. Для этого необходимо изменить переданные параметры модели, но это не слишком отличается.
Как видите, эта модель работает примерно так же, как и модель Jurassic-2 Ultra
, но если посмотреть на таблицу цен, то она в 10 раз дешевле по входным жетонам и на 60% дешевле по выходным жетонам.
На основе приведенных описаний можно составить 8-дневный маршрут, в котором основное внимание будет уделено посещению национальных парков.
День 1: Проведите утро в национальном парке Брикс-Кросс-Роудс (Brices Cross Roads National Battlefield Site), чтобы узнать о победе конфедератов в этом месте с помощью путевых экспонатов и короткометражного фильма. Во второй половине дня посетите Национальный памятник Эмметту Тиллу и Мейми Тилл-Мобли, чтобы узнать об их истории и ее влиянии на движение за гражданские права.
День 2: Посвятите весь день знакомству с Национальным морским побережьем островов Персидского залива. Прогуляйтесь пешком или на велосипеде по живописным прибрежным тропам, собирайте ракушки на пляже, наблюдайте за дикими животными вдоль береговой линии и в болотах.
День 3: Проведите утро, осматривая сохранившийся Национальный монумент «Дом Медгара и Мирли Эверс» и узнавая об их деятельности по защите гражданских прав. Во второй половине дня посетите Национальный исторический парк Натчез (Natchez National Historical Park), чтобы познакомиться с разнообразной историей района Натчез через исторические здания, пешеходные тропы и экспозиции.
День 4: Насладитесь живописной поездкой по трассе Natchez Trace Parkway, останавливаясь на различных обзорных площадках для фотографирования. Для более активного времяпрепровождения можно совершить пешую или велосипедную прогулку по прилегающей Национальной живописной тропе Natchez Trace National Scenic Trail.
День 5: Погрузитесь в эпическую историю Гражданской войны в Национальном военном парке Шилох, осмотрев места сражений и узнав о кровопролитной двухдневной битве, произошедшей там.
День 6: Проведите утро на Национальном поле битвы в Тупело (Tupelo National Battlefield), узнав о сражении 1864 года, произошедшем в этом городе. Во второй половине дня вы отправитесь в Национальный военный парк Виксбурга, где вам покажут обзорный фильм и проведут экскурсию по обширным полям сражений и укреплениям.
День 7: Еще один день посвятите дальнейшему знакомству с Виксбургским национальным военным парком, например, посетите экскурсию под руководством рейнджера или пройдитесь по дополнительным тропам, чтобы узнать о нюансах длительной осады, которая здесь проходила.
День 8: Перед отъездом вернитесь в любимый парк, который вы посетили в начале недели, для дополнительного изучения или для того, чтобы увидеть то, что вы, возможно, пропустили вначале.
Я также протестировал модель Claude v2, которая является более продвинутой, но при этом стоит примерно столько же, сколько модель Jurassic-2 Ultra. Это не дало заметного улучшения отклика, поэтому для данного случая использования я бы однозначно остановился на модели Anthropic Claude Instant.
Как перейти на новый уровень
Это действительно хорошее начало для такой простой подсказки. Вы можете продолжить работу над ней, улучшая ее и тестируя различные стили и формулировки. Можно попытаться найти другие источники информации, которые можно было бы включить в подсказку, поскольку предоставление полезной информации для использования в ответе часто является лучшим способом улучшить результаты таких моделей.
Как использовать этот процесс в других приложениях
В ходе этого процесса вы научились создавать приложение, использующее возможности искусственного интеллекта. Теперь вы можете следовать этому процессу, чтобы добавить возможности ИИ в свои собственные приложения AWS.
- Найдите сценарий использования, в котором ИИ мог бы генерировать контент
- Соберите некоторые данные, которые помогут ИИ создать лучший ответ.
- Сгенерируйте подсказку
- Вызовите функцию
InvokeModel
в Bedrock - Разверните и протестируйте свою функцию ИИ
- Измените запрос и параметры, чтобы увидеть, что приводит к наилучшим ответам
Как узнать больше о Serverless
Теперь, когда вы знаете, как встроить искусственный интеллект в свои приложения, у вас наверняка есть множество идей.
Если вы хотите узнать, как реализовать остальные идеи, ознакомьтесь с моим Окончательным руководством по Serverless или с моим курсом Освойте Serverless, создав 7 реальных проектов.