Моя проблема в том, что модель реагирует на любой ввод, не только чрезвычайные ситуации. Я попытался решить эту проблему, создав подсказку с конкретным набором данных для экстренных ситуаций и сгенерировав настроенную модель. Однако, изменив параметр modelName внутри GenerativeModel gm = new GenerativeModel(modelName, apiKey); на идентификатор сгенерированной настроенной модели TunedModels/first-aid-123example123, настроенная модель не дает никаких ответов.
Как мне настроить код, чтобы использовать настроенную модель вместо стандартной генеративной модели Gemini?
Это моя фактический код:
Код: Выделить всё
//imports
public class AssistanceActivity extends AppCompatActivity {
private EditText emergencyInput;
private TextView responseView;
private Button sendButton;
private GenerativeModelFutures model;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_assistance);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
emergencyInput = findViewById(R.id.emergencyInput);
responseView = findViewById(R.id.response);
sendButton = findViewById(R.id.send);
GenerativeModel gm = new GenerativeModel("gemini-1.5-flash", "GeminiApiKey");
model = GenerativeModelFutures.from(gm);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String query = emergencyInput.getText().toString().trim();
if (!query.isEmpty()) {
modelCall(query);
} else {
responseView.setText("Por favor ingrese una consulta.");
}
}
});
}
private void modelCall(String query) {
Content content = new Content.Builder()
.addText(query)
.build();
ListenableFuture response = model.generateContent(content);
Futures.addCallback(
response,
new FutureCallback() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
SpannableStringBuilder spannable = new SpannableStringBuilder();
String[] lines = resultText.split("\n");
for (String line : lines) {
if (line.startsWith("**")) {
String boldText = line.replace("**", "");
SpannableString spannableBold = new SpannableString(boldText + "\n");
spannableBold.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, boldText.length(), 0);
spannable.append(spannableBold);
} else if (line.startsWith("*")) {
String listItem = "• " + line.replace("*", "") + "\n";
spannable.append(listItem);
} else {
spannable.append(line + "\n");
}
}
runOnUiThread(() -> responseView.setText(spannable));
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
runOnUiThread(() -> responseView.setText("Error al obtener respuesta. Intente nuevamente."));
}
}, getMainExecutor());
}
}
Я распечатал ошибку через консоль и получил следующее:
Я распечатал ошибку через консоль и получил следующее:
п>
Код: Выделить всё
Unexpected Response:
}
"error": {
"code": 403,
"message": "You do not have permission to access tuned model tuned Models/ first-aid-123example123.",
}
}
"status": "PERMISSION_DENIED"
kotlinx.serialization.MissingFieldException:
Field 'details' is required for type with serial name 'com.google.ai.client.generativeai.commo n.server.GRpcError', but it was missing at path:
$.error
Разрешение на доступ к проекту
Подробнее здесь: https://stackoverflow.com/questions/791 ... oid-studio