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

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

Сообщение Anonymous »

Я не могу подключиться к Gemini/Vertex AI. Я попробовал два разных предложения кода, предложенные в чате Gemini (см. ниже). Я совершенно уверен, что следующая информация, использованная в URL-адресе, верна (опечаток точно нет):

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

API key
project id
Я менее уверен в местоположении, оно не отображается в консоли, а в чате Gemini сообщается, что для моего проекта нет точного местоположения. По предложению бота я запросил список через Cloud SDK для идентификатора моего проекта и попробовал несколько мест из полученного списка. Однако местоположение, похоже, не влияет на ответы.
В проекте включены API-интерфейсы Gemini и Vertex AI. У меня также есть пользовательские роли «владелец» и «пользователь Vertex AI», определенные в облачной консоли, и нет никаких ограничений на ключ 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";

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

    // attempt 1 - results in HTTP 401 "unauthorised"

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}");
}

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

// attempt 2 - results in HTTP 404 "Bad gRPC response."

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 ... -vertex-ai
Ответить

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

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

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

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

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