Невозможно подключиться к Gemini/Vertex AI (C#/.Net)C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно подключиться к Gemini/Vertex AI (C#/.Net)

Сообщение Anonymous »

Я новичок в Gemini/Vertex AI и не могу подключиться. Я попробовал два разных предложения кода, предложенные в чате Gemini (см. ниже). Я совершенно уверен, что следующая информация, используемая в URL-адресе, верна (опечаток точно нет):
Ключ API
идентификатор проекта
Я менее уверен в местоположении, оно не отображается в консоли, а в чате Gemini говорится, что для моего проекта нет точного местоположения. Как предложил бот, я запросил список через Cloud SDK для идентификатора моего проекта и попробовал несколько мест из полученного списка. Однако местоположение, похоже, не влияет на ответы.
В проекте включены API-интерфейсы Gemini и Vertex AI. У меня также есть пользовательские роли «владелец» и «пользователь Vertex AI», определенные в консоли Cloud, и нет никаких ограничений на ключ API. Также в переменную окружения GOOGLE_APPLICATION_CREDENTIALS установлена ​​соответствующая информация.
По мнению чат-бота Gemini, сгенерированный URL должен работать «с высокой вероятностью». Насколько я вижу, условия, перечисленные ботом, тоже выполняются, но явно что-то не так. Мы будем очень признательны за любую помощь!
Вот две версии кода (хотя обе используют один и тот же URL-адрес, ошибка HTTP разная):
/ / Следующие переменные одинаковы для обоих: ==================================

Код: Выделить всё

    private static readonly string projectId = "xxxx";
private static readonly string location = "europe-west1"; // one of several tried
private static readonly string geminiApiKey = "xxxx";
private static readonly string url = $"https://{location}-aiplatform.googleapis.com/v1/projects/{projectId}/locations/{location}/publishers/google/models/gemini-pro:generateContent";
//==================================== =============================================== ===
// попытка 1 - результат HTTP 401 "неавторизованный" ======================= ============

Код: Выделить всё

    var content = new StringContent(CreateTextRequestBody(text), Encoding.UTF8, "application/json");
var client = new HttpClient();

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", geminiApiKey);

var response = await client.PostAsync(url, content);

if (response.IsSuccessStatusCode)
{
string responseContent = await response.Content.ReadAsStringAsync();
// Parse the JSON response to get the generated text
return responseContent;
}
else
{
throw new Exception($"Gemini request error: {response.StatusCode} {response.ReasonPhrase}");
}
//==================================== =============================================== ===
// попытка 2 — результат HTTP 404 — «Неверный ответ gRPC». ===================================

Код: Выделить всё

    var instance = new Google.Protobuf.WellKnownTypes.Value
{
StructValue = new Struct
{
Fields =
{
{ "input_text", Google.Protobuf.WellKnownTypes.Value.ForString("Hello, world!") }
}
}
};

// Convert instance to a list of values
var instances = new List { instance };

// Optional: Additional parameters for prediction
var parameters = new Google.Protobuf.WellKnownTypes.Value
{
StructValue = new Struct
{
Fields =
{
{ "param_key", Google.Protobuf.WellKnownTypes.Value.ForString("param_value") }
}
}
};

try
{
// Making the predict request
PredictResponse response = predictionClient.Predict(url, instances, parameters);

// Print the response
foreach (var prediction in response.Predictions)
{
Debug.WriteLine($"Prediction: {prediction}");
}
}
catch (Grpc.Core.RpcException e)
{
Debug.WriteLine($"RPC failed: {e.Status}");
}
//==================================== =============================================== ===
Опять же, любая помощь будет полезна, я понятия не имею, что еще попробовать.

Подробнее здесь: https://stackoverflow.com/questions/785 ... x-ai-c-net
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»