Google AI Client SDK به شما امکان میدهد با Gemini API تماس بگیرید و از مدلهای خانواده Gemini مستقیماً از برنامه Android خود استفاده کنید.
یک ردیف رایگان به شما امکان می دهد بدون هزینه آزمایش کنید. برای سایر جزئیات قیمت، راهنمای قیمت گذاری را ببینید.
شروع کردن
قبل از اینکه مستقیماً از برنامه خود با Gemini API تعامل داشته باشید، ابتدا باید چند کار را انجام دهید، از جمله آشنایی با درخواست و همچنین تولید یک کلید API و تنظیم برنامه خود برای استفاده از SDK.
با دستورات آزمایش کنید
با ایجاد نمونه اولیه درخواست خود در Google AI Studio شروع کنید.
Google AI Studio یک IDE برای طراحی سریع و نمونه سازی است. این به شما امکان میدهد فایلها را برای آزمایش اعلانها با متن و عکس آپلود کنید و درخواستی را ذخیره کنید تا بعداً دوباره آن را ببینید.
ایجاد دستور مناسب برای مورد استفاده شما بیشتر هنر است تا علم، که آزمایش را حیاتی می کند. میتوانید در اسناد رسمی Google AI درباره درخواست اطلاعات بیشتری کسب کنید.
برای کسب اطلاعات بیشتر در مورد قابلیتهای پیشرفته Google AI Studio، به استودیوی هوش مصنوعی Google مراجعه کنید.
کلید API خود را ایجاد کنید
هنگامی که از درخواست خود راضی شدید، روی دریافت کلید API کلیک کنید تا کلید Gemini API شما ایجاد شود. کلید با برنامه شما همراه می شود، که برای آزمایش و نمونه سازی مناسب است اما برای موارد استفاده تولید توصیه نمی شود .
همچنین، برای جلوگیری از متعهد شدن کلید API خود به مخزن کد منبع، از افزونه Secrets gradle استفاده کنید.
وابستگی Gradle را اضافه کنید
وابستگی Google AI Client SDK را به برنامه خود اضافه کنید:
کاتلین
dependencies { [...] implementation("com.google.ai.client.generativeai:generativeai:0.7.0") }
جاوا
dependencies { [...] implementation("com.google.ai.client.generativeai:generativeai:0.7.0") // Required to use `ListenableFuture` from Guava Android for one-shot generation implementation("com.google.guava:guava:31.0.1-android") // Required to use `Publisher` from Reactive Streams for streaming operations implementation("org.reactivestreams:reactive-streams:1.0.4") }
یک GenerativeModel
ایجاد کنید
با نمونه سازی یک GenerativeModel
با ارائه موارد زیر شروع کنید:
- نام مدل :
gemini-1.5-flash
،gemini-1.5-pro
، یاgemini-1.0-pro
- کلید API شما با Google AI Studio ایجاد شده است.
شما می توانید به صورت اختیاری پارامترهای مدل را تعریف کنید و مقادیری را برای دما , topK , topP و حداکثر نشانه های خروجی ارائه دهید.
همچنین می توانید ویژگی های ایمنی را برای موضوعات زیر تعریف کنید:
-
HARASSMENT
-
HATE_SPEECH
-
SEXUALLY_EXPLICIT
-
DANGEROUS_CONTENT
کاتلین
val model = GenerativeModel( model = "gemini-1.5-flash-001", apiKey = BuildConfig.apikey, generationConfig = generationConfig { temperature = 0.15f topK = 32 topP = 1f maxOutputTokens = 4096 }, safetySettings = listOf( SafetySetting(HarmCategory.HARASSMENT, BlockThreshold.MEDIUM_AND_ABOVE), SafetySetting(HarmCategory.HATE_SPEECH, BlockThreshold.MEDIUM_AND_ABOVE), SafetySetting(HarmCategory.SEXUALLY_EXPLICIT, BlockThreshold.MEDIUM_AND_ABOVE), SafetySetting(HarmCategory.DANGEROUS_CONTENT, BlockThreshold.MEDIUM_AND_ABOVE), ) )
جاوا
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder(); configBuilder.temperature = 0.15f; configBuilder.topK = 32; configBuilder.topP = 1f; configBuilder.maxOutputTokens = 4096; ArrayList<SafetySetting> safetySettings = new ArrayList(); safetySettings.add(new SafetySetting(HarmCategory.HARASSMENT, BlockThreshold.MEDIUM_AND_ABOVE)); safetySettings.add(new SafetySetting(HarmCategory.HATE_SPEECH, BlockThreshold.MEDIUM_AND_ABOVE)); safetySettings.add(new SafetySetting(HarmCategory.SEXUALLY_EXPLICIT, BlockThreshold.MEDIUM_AND_ABOVE)); safetySettings.add(new SafetySetting(HarmCategory.DANGEROUS_CONTENT, BlockThreshold.MEDIUM_AND_ABOVE)); GenerativeModel gm = new GenerativeModel( "gemini-1.5-flash-001", BuildConfig.apiKey, configBuilder.build(), safetySettings );
از Google AI Client SDK در برنامه خود استفاده کنید
اکنون که یک کلید API دارید و برنامه خود را برای استفاده از SDK تنظیم کرده اید، آماده تعامل با Gemini API هستید.
تولید متن
برای ایجاد یک پاسخ متنی، با دستور شما generateContent()
فراخوانی کنید.
کاتلین
scope.launch { val response = model.generateContent("Write a story about a green robot.") }
جاوا
// In Java, create a GenerativeModelFutures from the GenerativeModel. // generateContent() returns a ListenableFuture. // Learn more: // https://developer.android.com/develop/background-work/background-tasks/asynchronous/listenablefuture GenerativeModelFutures model = GenerativeModelFutures.from(gm); Content content = new Content.Builder() .addText("Write a story about a green robot.") .build(); Executor executor = // ... ListenableFuture<GenerateContentResponse> response = model.generateContent(content); Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() { @Override public void onSuccess(GenerateContentResponse result) { String resultText = result.getText(); } @Override public void onFailure(Throwable t) { t.printStackTrace(); } }, executor);
توجه داشته باشید که generateContent()
یک تابع suspend
است که به خوبی با کد Kotlin موجود ادغام می شود.
تولید متن از تصاویر و رسانه های دیگر
همچنین میتوانید متنی را از یک درخواست تولید کنید که شامل متن به اضافه تصاویر یا رسانههای دیگر است. هنگام فراخوانی generateContent()
، می توانید رسانه را به عنوان داده درون خطی ارسال کنید (همانطور که در مثال زیر نشان داده شده است).
کاتلین
scope.launch { val response = model.generateContent( content { image(bitmap) text("What is the object in this picture?") } ) }
جاوا
Content content = new Content.Builder() .addImage(bitmap) .addText("What is the object in this picture?") .build(); Executor executor = // ... ListenableFuture<GenerateContentResponse> response = model.generateContent(content); Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() { @Override public void onSuccess(GenerateContentResponse result) { String resultText = result.getText(); } @Override public void onFailure(Throwable t) { t.printStackTrace(); } }, executor);
چت چند نوبتی
همچنین می توانید از مکالمات چند نوبتی پشتیبانی کنید. یک چت را با تابع startChat()
راه اندازی کنید. شما می توانید به صورت اختیاری یک تاریخچه پیام ارائه دهید. سپس تابع sendMessage()
را برای ارسال پیام های چت فراخوانی کنید.
کاتلین
val chat = model.startChat( history = listOf( content(role = "user") { text("Hello, I have 2 dogs in my house.") }, content(role = "model") { text("Great to meet you. What would you like to know?") } ) ) scope.launch { val response = chat.sendMessage("How many paws are in my house?") }
جاوا
Content.Builder userContentBuilder = new Content.Builder(); userContentBuilder.setRole("user"); userContentBuilder.addText("Hello, I have 2 dogs in my house."); Content userContent = userContentBuilder.build(); // (Optional) create message history Content.Builder modelContentBuilder = new Content.Builder(); modelContentBuilder.setRole("model"); modelContentBuilder.addText("Great to meet you. What would you like to know?"); Content modelContent = userContentBuilder.build(); List<Content> history = Arrays.asList(userContent, modelContent); // Initialize the chat ChatFutures chat = model.startChat(history); Content.Builder userMessageBuilder = new Content.Builder(); userMessageBuilder.setRole("user"); userMessageBuilder.addText("How many paws are in my house?"); Content userMessage = userMessageBuilder.build(); Executor executor = // ... ListenableFuture<GenerateContentResponse> response = chat.sendMessage(userMessage); Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() { @Override public void onSuccess(GenerateContentResponse result) { String resultText = result.getText(); } @Override public void onFailure(Throwable t) { t.printStackTrace(); } }, executor);
جریان پاسخ
میتوانید با منتظر ماندن برای کل نتیجه تولید مدل، به تعاملات سریعتری برسید و در عوض از استریم برای مدیریت نتایج جزئی استفاده کنید. برای پخش یک پاسخ از generateContentStream()
استفاده کنید.
کاتلین
someScope.launch { var outputContent = "" generativeModel.generateContentStream(inputContent) .collect { response -> outputContent += response.text } }
جاوا
// In Java, the method generateContentStream() returns a Publisher // from the Reactive Streams library. // https://www.reactive-streams.org/ Publisher<GenerateContentResponse> streamingResponse = model.generateContentStream(content); StringBuilder outputContent = new StringBuilder(); streamingResponse.subscribe(new Subscriber<GenerateContentResponse>() { @Override public void onNext(GenerateContentResponse generateContentResponse) { String chunk = generateContentResponse.getText(); outputContent.append(chunk); } @Override public void onComplete() { // ... } @Override public void onError(Throwable t) { t.printStackTrace(); } @Override public void onSubscribe(Subscription s) { s.request(Long.MAX_VALUE); // Request all messages } });
اندروید استودیو
Android Studio ابزارهای اضافی را برای کمک به شما در شروع کار ارائه می دهد.
- الگوی شروع Gemini API : این الگوی شروع به شما کمک میکند یک کلید API را مستقیماً از Android Studio ایجاد کنید و پروژهای ایجاد کنید که شامل وابستگیهای لازم اندروید برای استفاده از Gemini API است.
- نمونه هوش مصنوعی مولد : این نمونه به شما امکان می دهد SDK مشتری هوش مصنوعی Google را برای برنامه نمونه اندروید در Android Studio وارد کنید.
مراحل بعدی
- برنامه نمونه SDK کلاینت Google AI برای Android را در GitHub مرور کنید.
- در اسناد رسمی Google AI درباره SDK مشتری هوش مصنوعی Google بیشتر بیاموزید.