社区中心 | 讨论问答网站 | 开始问答
开始使用 Microsoft Q&A 的初始步骤或说明
// Azure OpenAI client initialization
private static final OpenAIClient client = new OpenAIClientBuilder()
.credential(new AzureKeyCredential(API_KEY))
.endpoint(ENDPOINT)
.buildClient();
public interface AIResponseCallback {
void onResponse(String response);
void onError(String error);
}
public static void sendMessage(String message, AIResponseCallback callback) {
new Thread(() -> {
try {
// Prepare the chat messages for Azure OpenAI
List<ChatMessage> messages = new ArrayList<>();
messages.add(new ChatMessage(ChatRole.USER).setContent(message));
// Configure chat completion options
ChatCompletionsOptions options = new ChatCompletionsOptions(messages);
// Call the Azure OpenAI service
String response = client.getChatCompletions(DEPLOYMENT_NAME, options)
.getChoices().get(0).getMessage().getContent();
// Handle response
callback.onResponse(response);
Log.d(TAG, "AI response received successfully: " + response);
} catch (Exception e) {
callback.onError("Error: " + e.getMessage());
Log.e(TAG, "AI response error: " + e.getMessage());
}
}).start();
}
private void sendMessage() {
String messageText = binding.editTextMessage.getText().toString().trim();
boolean includeImage = binding.includeImageCheckBox.isChecked();
if (!messageText.isEmpty()) {
addMessage(new ChatMessage(messageText, false));
binding.editTextMessage.setText("");
if (includeImage) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_STORAGE_PERMISSION);
}
} else {
AIService.sendMessage(messageText, new AIService.AIResponseCallback() {
@Override
public void onResponse(String response) {
mainHandler.post(() -> addMessage(new ChatMessage(response, true)));
}
@Override
public void onError(String error) {
mainHandler.post(() -> addMessage(new ChatMessage("Error: " + error, true)));
}
});
}
}
}