Если вы занимаетесь технологиями, ИИ сегодня повсюду. На работе я использую ИИ, чтобы помочь себе в проверке концепции, иногда при общении с другими ИИ. Дома я использую Bard от Google, чтобы помочь с повседневными умственными делами, такими как планирование еды. Даже во время игры, когда вы увлекаетесь игрой Gran Turismo, есть искусственный интеллект, который может гонка против. Я ничего не могу поделать с ИИ, которыми пользуюсь более случайно (кроме того, что знаю о них). Однако на работе у меня есть некоторый контроль! При взаимодействии с ИИ через API вам предоставляется возможность настроить параметры или попробовать один и тот же запрос в разных контекстах, прежде чем получить ответ от вашего ИИ. И что может быть лучше, чтобы помочь оценить взаимодействие пользователей с ИИ, чем эксперименты с функциями Optimizely!
Здесь я буду работать с API OpenAI вместе с их клиентским пакетом от nuget, чтобы упростить некоторые довольно уродливые настройки. В конце статьи я приведу версию вызова HttpClient, чтобы вы могли увидеть подробности.
В этой демонстрации я буду переключать модель ИИ, которую использует мое приложение, но этот подход можно использовать с любыми параметрами, отправляемыми в ИИ. Ваш базовый вызов API OpenAI имеет следующий формат:
client = new OpenAIAPI(apiKey);
var parameters = new CompletionRequest
{
Model = "gpt-3_5-turbo",
Prompt = promptText,
Temperature = 0.7,
MaxTokens = 100
};
var response = await client.Completions.CreateCompletionAsync(parameters);
generatedText = response.Completions[0].Text;
Это должно быть знакомо любому разработчику, который использовал клиентскую оболочку для API. Детали соединения обрабатываются клиентом, но бизнес-концом запроса являются параметры CompletionRequest. Здесь мы можем выбрать модель ИИ, к которой мы хотим выполнить запрос, а также предоставить контекст/подсказку, а также другие сведения, относящиеся к настройке ИИ.
Я организовал эксперимент, который отправляет запрос пользователя либо в ChatGPT 3.5, либо в модель Давинчи:
После этого мы снова настроим клиент Optimizely в нашем решении:
optimizely = OptimizelyFactory.NewDefaultInstance(Configuration.GetValue("Optimizely:SdkKey"));
user = optimizely.CreateUserContext(numGen.Next().ToString());
user.TrackEvent("Engaged_AI");
Теперь мы можем принять решение о том, сможет ли пользователь взаимодействовать с выбранным ИИ и с какой моделью он общается, используя функцию экспериментирования Optimizely:
var decision = user.Decide("ai_model");
if (decision.Enabled)
{
var ai_model = decision.VariationKey;
var parameters = new CompletionRequest
{
Model = ai_model,
Prompt = promptText,
Temperature = 0.7,
MaxTokens = 100
};
var response = await client.Completions.CreateCompletionAsync(parameters);
generatedText = response.Completions[0].Text;
}
else{
generatedText = "AI is not enabled for this user";
}
Согласно эксперименту, который я поставил, 90% моих пользователей будут иметь возможность взаимодействовать с ИИ, и если они это сделают, их запрос будет отправлен либо в ChatGPT 3.5, либо в Davinici, и я смогу оценить уровень взаимодействие между моими пользователями и моим ИИ.
Теперь, когда вы внедряете ИИ в свои приложения, вы можете увидеть, как пометка функций и экспериментирование с функциями могут помочь вам оценить ваш подход к ИИ.