PaLM API: البدء السريع للمحادثة باستخدام Java

تبدأ هذه الأداة السريعة في استخدام خدمة الدردشة في PaLM API من خلال مكتبة عميل Java.

الحصول على مفتاح واجهة برمجة التطبيقات

للبدء، عليك الحصول على مفتاح واجهة برمجة التطبيقات.

تثبيت عميل واجهة برمجة التطبيقات

سيتم تثبيت PaLM Java SDK في مستودع Maven المحلي لديك لتتمكن من إضافتها كتبعية لمشروع Gradle الخاص بك.

  1. نزِّل ملف google-cloud-ai-generativelanguage-v1-java.tar.gz.
  2. استخرِج الملفات وثبِّتها في mavenLocal:

    # Extract the files
    tar -xzvf google-cloud-ai-generativelanguage-v1-java.tar.gz
    cd google-cloud-ai-generativelanguage-v1-java
    
    # Install to mavenLocal
    ./gradlew publishToMavenLocal
    

إضافة حزمة SDK إلى مشروعك

  1. افتح ملف إعداد Gradle وتأكَّد من إدراج mavenLocal() ضمن repositories:

    repositories {
        mavenCentral()
        // ...
    
        // Add the Maven Local repository
        mavenLocal()
    }
    
  2. وفي ملف إعداد Gradle أيضًا، أضِف المكتبات اللازمة إلى مجموعة dependencies:

    dependencies {
        // ...
    
        // Add these dependencies to use Generative AI
        implementation("com.google.cloud:gapic-google-cloud-ai-generativelanguage-v1-java:0.0.0-SNAPSHOT")
        implementation("io.grpc:grpc-okhttp:1.53.0")
    }
    

إعداد عميل خدمة المناقشة

يمكنك إعداد DiscussServiceClient من خلال تمرير مفتاح واجهة برمجة التطبيقات (المتوفّر من خلال متغير بيئة API_KEY) كعنوان إلى TransportChannelProvider ليتم استخدامه من خلال DiscussServiceSettings:

import com.google.ai.generativelanguage.v1.DiscussServiceClient;
import com.google.ai.generativelanguage.v1.DiscussServiceSettings;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.api.gax.rpc.FixedHeaderProvider;


HashMap<String, String> headers = new HashMap<>();
headers.put("x-goog-api-key", System.getEnv("API_KEY"));

InstantiatingGrpcChannelProvider provider = InstantiatingGrpcChannelProvider.newBuilder()
    .setHeaderProvider(FixedHeaderProvider.create(headers))
    .build();

DiscussServiceSettings settings = DiscussServiceSettings.newBuilder()
    .setTransportChannelProvider(provider)
    .setCredentialsProvider(FixedCredentialsProvider.create(null))
    .build();

DiscussServiceClient client = DiscussServiceClient.create(settings);

إنشاء طلب رسائل

يجب توفير السمة MessagePrompt لواجهة برمجة التطبيقات، بحيث يمكنها توقُّع الرسالة التالية في المناقشة.

(اختياري) إنشاء بعض الأمثلة

ويمكنك اختياريًا تقديم بعض الأمثلة لما يجب أن ينشئه النموذج. ويتضمن ذلك كلاً من البيانات التي أدخلها المستخدم والاستجابة التي يجب أن يحاكيها النموذج.

import com.google.ai.generativelanguage.v1.Example;
import com.google.ai.generativelanguage.v1.Message;


Message input = Message.newBuilder()
    .setContent("What is the capital of California?")
    .build();

Message response = Message.newBuilder()
    .setContent("If the capital of California is what you seek, Sacramento is where you ought to peek.")
    .build();

Example californiaExample = Example.newBuilder()
    .setInput(input)
    .setOutput(response)
    .build();

إنشاء الطلب

مرِّر الأمثلة إلى MessagePrompt.Builder مع سجلّ الرسائل الحالي، ويمكنك إرسال المثال من الخطوة السابقة اختياريًا.

import com.google.ai.generativelanguage.v1.Message;
import com.google.ai.generativelanguage.v1.MessagePrompt;

Message geminiMessage = Message.newBuilder()
    .setAuthor("0")
    .setContent("How tall is the Eiffel Tower?")
    .build();

MessagePrompt messagePrompt = MessagePrompt.newBuilder()
    .addMessages(geminiMessage) // required
    .setContext("Respond to all questions with a rhyming poem.") // optional
    .addExamples(californiaExample) // use addAllExamples() to add a list of examples
    .build();

إنشاء الرسائل

إنشاء GenerateMessageRequest

يمكنك إنشاء GenerateMessageRequest عن طريق تمرير اسم نموذج وطلب إلى GenerateMessageRequest.Builder:

GenerateMessageRequest request = GenerateMessageRequest.newBuilder()
    .setModel("models/chat-bison-001") // Required, which model to use to generate the result
    .setPrompt(messagePrompt) // Required
    .setTemperature(0.5f) // Optional, controls the randomness of the output
    .setCandidateCount(1) // Optional, the number of generated messages to return
    .build();

إرسال الطلب

GenerateMessageResponse response = client.generateMessage(request);

Message returnedMessage = response.getCandidatesList().get(0);

System.out.println(returnedMessage);

الخطوات التالية

والآن بعد أن أنشأت أول تطبيق Java باستخدام PaLM API، يمكنك الاطّلاع على المرجع أدناه لمعرفة المزيد حول واجهة برمجة التطبيقات والنماذج اللغوية بشكل عام.