logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zintegrować AI z własnymi projektami? Tutoria Google API - Gemini, Nano Banana, VEO

p.kaczmarek2 27 Mar 2026 13:37 1221 0

TL;DR LABEL_AI_GENERATED

  • Pokazuje integrację modeli Google AI przez API w Node.js, od prostego chatu po multimodalne funkcje dla tekstu, obrazów, dźwięku i filmów.
  • Kluczowy mechanizm to biblioteka generative-ai, klucze API z aistudio.google.com oraz wywołania tools, base64, upload i system prompt do sterowania zachowaniem modelu.
  • Wśród pokazanych modeli pojawiają się gemini-2.5-flash, gemini-2.5-pro, gemini-2.5-flash-image, veo-3.1-generate-preview i gemini-2.5-flash-native-audio-latest.
  • API potrafi opisać obraz i wideo, wygenerować obraz Nano Banana, stworzyć film przez Veo oraz zamienić tekst na mowę z głosem Kore.
  • Największe ograniczenie to koszty tokenów i billing; generowanie wideo trwa dłużej, a część funkcji wymaga osobnej biblioteki lub dodatkowego formatowania danych WAV.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
Słuchaj:
  • Logo Gemini: kolorowa czteroramienna gwiazda obok czarnego napisu „Gemini” na białym tle.
    Wielu z Was zapewne zastanawia się, jak można uwolnić potęgę dzisiejszej sztucznej inteligencji i zintegrować ją z własnymi projektami i produktami. Najpopularniejsza forma dostępu do LLMów, czyli popularne okienko chatu jest tylko czubkiem góry lodowej. Tutaj pokażę, jak można zintegrować współczesne multimodalne modele z własnym systemem poprzez interfejs programistyczny API. W tym temacie zaprezentuję przegląd możliwości takich modeli, obejmie on przetwarzanie tekstów, obrazów, a nawet dźwięku i filmów.

    Zakładam, że mamy już konto Google i jesteśmy zalogowani w aistudio.google.com. Trzeba mieć podpięty też system płatności, choć można korzystać też z wersji trial - Google dość hojnie rozdaje okresy próbne i kredyty na start. Zaczynamy od utworzenia projektu i klucza - musimy mieć go w API Keys:
    Zrzut ekranu Google AI Studio z listą kluczy API i projektów oraz linkiem „Activate billing”
    Nasze koszty z kolei mamy dostępne w billing, i musimy je tam bacznie obserwować. Każdy model kosztuje - nie będę już tego powtarzać, ale łatwo jest zużyć wiele tokenów.
    Zrzut ekranu panelu rozliczeń Google z podsumowaniem kosztów w PLN i sekcją alertu budżetowego.
    Po więcej informacji odsyłam do pomocy Google, tu się chcę skupić na prezentacji, co w ogóle jest możliwe z dzisiejszym AI.

    Hello World
    Tutaj zdecydowałem się użyć node.js wraz z gotową paczką generative-ai od Google. Ktoś może mógłby woleć Pythona, ale ja preferuję składnię kojarzącą się z Javą i C++. Zacznijmy od package.json:
    Kod: JSON
    Zaloguj się, aby zobaczyć kod

    W oparciu o nie będę uruchamiać kolejne demka. Zakładam podstawową znajomość node.js - projekt instalujemy przez npm install. Zresztą... same LLMy też mogą w tym pomóc.

    Hello World - tekstowy prompt
    Jako "Hello world" uruchomię najprostszy model LLM z prostym promptem. W użytej bibliotece sprowadza się to do podania klucza API, wybrania modelu i wysłania prompta:
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/helloWorld.js
    Rezultat:
    Zrzut ekranu z terminala PowerShell z wynikiem skryptu Node.js: „Hello world!” i fakt o mop­sach

    Hello World - listowanie modeli
    Drugą podstawową rzeczą jest sprawdzenie dostępnych modeli przez API. Pozwoli nam to uniknąć zgadywania "na ślepo", z czego można skorzystać.
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/listModels.js
    Rezultat:
    
    - models/gemini-2.5-flash                       | Gemini 2.5 Flash
    - models/gemini-2.5-pro                         | Gemini 2.5 Pro
    - models/gemini-2.0-flash                       | Gemini 2.0 Flash
    - models/gemini-2.0-flash-001                   | Gemini 2.0 Flash 001        
    - models/gemini-2.0-flash-lite-001              | Gemini 2.0 Flash-Lite 001   
    - models/gemini-2.0-flash-lite                  | Gemini 2.0 Flash-Lite       
    - models/gemini-2.5-flash-preview-tts           | Gemini 2.5 Flash Preview TTS
    - models/gemini-2.5-pro-preview-tts             | Gemini 2.5 Pro Preview TTS  
    - models/gemma-3-1b-it                          | Gemma 3 1B
    - models/gemma-3-4b-it                          | Gemma 3 4B
    - models/gemma-3-12b-it                         | Gemma 3 12B
    - models/gemma-3-27b-it                         | Gemma 3 27B
    - models/gemma-3n-e4b-it                        | Gemma 3n E4B
    - models/gemma-3n-e2b-it                        | Gemma 3n E2B
    - models/gemini-flash-latest                    | Gemini Flash Latest
    - models/gemini-flash-lite-latest               | Gemini Flash-Lite Latest    
    - models/gemini-pro-latest                      | Gemini Pro Latest
    - models/gemini-2.5-flash-lite                  | Gemini 2.5 Flash-Lite
    - models/gemini-2.5-flash-image                 | Nano Banana
    - models/gemini-2.5-flash-lite-preview-09-2025  | Gemini 2.5 Flash-Lite Preview Sep 2025
    - models/gemini-3-pro-preview                   | Gemini 3 Pro Preview
    - models/gemini-3-flash-preview                 | Gemini 3 Flash Preview
    - models/gemini-3.1-pro-preview                 | Gemini 3.1 Pro Preview
    - models/gemini-3.1-pro-preview-customtools     | Gemini 3.1 Pro Preview Custom Tools
    - models/gemini-3.1-flash-lite-preview          | Gemini 3.1 Flash Lite Preview
    - models/gemini-3-pro-image-preview             | Nano Banana Pro
    - models/nano-banana-pro-preview                | Nano Banana Pro
    - models/gemini-3.1-flash-image-preview         | Nano Banana 2
    - models/gemini-robotics-er-1.5-preview         | Gemini Robotics-ER 1.5 Preview
    - models/gemini-2.5-computer-use-preview-10-2025 | Gemini 2.5 Computer Use Preview 10-2025
    - models/deep-research-pro-preview-12-2025      | Deep Research Pro Preview (Dec-12-2025)
    - models/gemini-embedding-001                   | Gemini Embedding 001
    - models/gemini-embedding-2-preview             | Gemini Embedding 2 Preview
    - models/aqa                                    | Model that performs Attributed Question Answering.
    - models/imagen-4.0-generate-001                | Imagen 4
    - models/imagen-4.0-ultra-generate-001          | Imagen 4 Ultra
    - models/imagen-4.0-fast-generate-001           | Imagen 4 Fast
    - models/veo-2.0-generate-001                   | Veo 2
    - models/veo-3.0-generate-001                   | Veo 3
    - models/veo-3.0-fast-generate-001              | Veo 3 fast
    - models/veo-3.1-generate-preview               | Veo 3.1
    - models/veo-3.1-fast-generate-preview          | Veo 3.1 fast
    - models/gemini-2.5-flash-native-audio-latest   | Gemini 2.5 Flash Native Audio Latest
    - models/gemini-2.5-flash-native-audio-preview-09-2025 | Gemini 2.5 Flash Native Audio Preview 09-2025
    - models/gemini-2.5-flash-native-audio-preview-12-2025 | Gemini 2.5 Flash Native Audio Preview 12-2025
    


    Opisywanie obrazu (prompt + tekst)
    Dzisiejsze modele są jednak multimodalne, i potrafią też opisywać obrazy. Takie obrazy załącza się tutaj kodowane przez Base64. Na próbę przygotowałem przykładowy obraz:
    Ogródek kawiarni na ulicy z kolorowymi parasolami, kwiatami i psem obok stolika z kawą
    Kod zyskuje kilka dodatkowych linijek, by móc przetworzyć obraz. Prompt dalej też zależy od nas:
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/describeImage.js
    Rezultat:
    Zrzut ekranu terminala z poleceniem node index.js i angielskim opisem zdjęcia kawiarni.
    Można zmienić dowolnie prompt. Przykładowo dla polecenia:
    
    List living beings visible on photo
    

    Otrzymujemy odpowiedź respektującą to, o co prosimy:
    
    Based on the photo, here are the living beings visible:
    
    1.  **People** (numerous individuals seated at tables and walking in the background)
    2.  **Dog** (sitting in the foreground on the right)
    3.  **Plants/Flowers** (many potted plants with colorful flowers lining the street and decorating the cafe exterior)
    



    Generowanie nowych obrazów
    Sztuczna inteligencja od Google potrafi też tworzyć obrazy, służą do tego jednak wybrane modele. Przykładowo słynny Nano Banana, wraz ze swoimi różnymi wersjami. Flash nam obrazu nie utworzy. Wewnętrznie nazywa się on gemini-2.5-flash-image. Oprócz wyboru modelu mamy tu tę samą opcję co na stronie od Google, czyli wybór trybów odpowiedzi - czy tylko obraz, czy tekst i obraz.
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/createImage.js
    Utworzony obraz:
    Uśmiechnięty kubek z oczami i cylindrem siedzi na stosie książek w ciepło oświetlonym pokoju.
    Pasuje raczej do mojego opisu z promptu, prawda?


    Generowanie filmów
    W podobny sposób można tworzyć filmy, służy do tego interfejs Veo. Nie udało mi się uruchomić go w tej samej bibliotece co poprzednio, więc do tego przykładu użyłem pokrewnego zasobu genai:
    Kod: JSON
    Zaloguj się, aby zobaczyć kod

    Generowanie video troszkę trwa, a z API uzyskujemy link do sprawdzania stanu pracy. Dopiero potem można je zapisać.
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/createVideo.js
    Rezultat:





    Zamiana tekstu na mowę
    Google oferuje też zamianę tekstu pisanego na naturalnie brzmiącą mowę. Dostępne jest kilka różnych głosów, tutaj użyję głosu Kore. Jednym z potencjalnych problemów jest brak nagłówka WAV w zwróconych danych, ale go można łatwo dodać.
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/createSpeech.js
    Rezultat:
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/speech.wav



    Edytowanie zdjęć
    Nano Banana Pro zasłynął też z rewelacyjnych zdolności edytowania zdjęć - można zmieniać obiekty, osoby, a nawet dodawać całkiem nowe rzeczy. Te funkcje też dostępne są przez API. Zdjęcie, tak jak wcześniej, wysyłane jest w formacie base64 i w tym samym otrzymujemy odpowiedź.
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/editImage.js
    Zdjęcie wejściowe:
    Ogródek kawiarniany na ulicy z kolorowymi parasolami, kawą na stole i psem siedzącym obok.
    Prompt:
    Edit this image: replace the dog with a cat. Keep everything else exactly the same.

    Rezultat:
    Ogródek kawiarni na kamiennej ulicy, kolorowe parasole, ludzie przy stolikach i rudy kot obok stolika.


    Grounding, czyli źródła - wyszukiwarka
    Współczesne modele AI wciąż mogą halucynować, ale na szczęście można udostępnić im różne narzędzia, takie jak wyszukiwarka, aby mogły udzielać bardziej aktualnych i wiarygodnych odpowiedzi. Zamiast polegać wyłącznie na wiedzy z treningu, może odwoływać się do wcześniej przygotowanych przez nas danych lub do tych znalezionych w Internecie. Dzięki temu zmniejsza się ryzyko błędów i tzw. halucynacji. Wyszukiwarkę podpina się poprzez obiekt "tools":
    Kod: Javascript
    Zaloguj się, aby zobaczyć kod

    Rezultat (skrócony):
    Zrzut terminala z wynikiem zapytania Gemini z groundingiem Google Search o ceny BTC i ETH oraz źródła.

    Opis filmu
    Kolejnym wartościowym zastosowaniem AI może być opisywanie krótkich klipów filmowych. Na próbę wygenerowałem przykładowy filmik:



    Dodałem go do zapytania AI poprzez funkcję upload. Pełen kod:
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/describe_video.js
    Opis filmiku od AI:
    
    Uploading video to Gemini...
    Uploaded file as: files/bd2tskdurfs3
    Waiting for video to be processed...
    .
    Video processed! Asking Gemini to describe it...
    
    --- Gemini's Description ---
    The video opens with a stunning low-angle shot, focusing on an **orange tabby cat** walking slowly and deliberately directly towards the viewer down a narrow, ancient-looking cobblestone street.
    
    **The Cat:**
    *   It is a medium-haired ginger cat, with distinct tabby stripes and markings across its body.
    *   Its fur is beautifully backlit by the strong, golden light, giving it a radiant halo, especially visible around its fluffy tail, which is held high and slightly curled.
    *   The cat has bright, observant greenish-yellow eyes and prominent whiskers.
    *   It walks with a calm, steady gait, its head held level, occasionally glancing subtly to its left or right but primarily looking straight ahead.
    
    **The Environment:**
    *   The street is paved with irregular, dark cobblestones, with hints of green moss or grass growing between them, suggesting 
    age.
    *   Old stone or brick buildings, somewhat blurred due to the shallow depth of field, line both sides of the street, receding 
    into the background. These buildings are largely in shadow, further emphasizing the bright light down the center of the street.
    *   The overall setting gives the impression of a quaint European alleyway or historic town street.
    
    **The Lighting:**
    *   The scene is bathed in a warm, intense golden light, strongly indicating either sunrise or sunset (golden hour).
    *   The light source is directly behind the approaching cat, creating a dramatic backlighting effect that makes the cat's silhouette pop and its fur glow.
    *   The cobblestones directly in front of the camera are also illuminated by this warm glow, highlighting their texture.      
    
    **Camera Movement:**
    *   The camera maintains a very low perspective, almost at ground level, effectively tracking the cat's movement.
    *   It performs a smooth, continuous forward tracking shot, keeping the cat centered in the frame as it steadily approaches.  
    *   The shot maintains a consistent shallow depth of field, keeping the cat sharp while the background is softly blurred.     
    
    **Action:**
    *   The cat continues its measured walk towards the camera, gradually filling more of the frame.
    *   At approximately 0:00:07, the cat pauses briefly, looking directly at the camera, then slightly turns its head to its left (viewer's right) before the video concludes.
    
    The entire scene is serene and picturesque, enhanced by the gentle background music (a soft piano melody).
    

    Całość powtórzyłem na filmie z dziedziny elektroniki:



    Opis:
    
    --- Gemini's Description ---
    In this close-up video, a person is shown using soldering tools to remove a small component from a green circuit board. The circuit board is covered in numerous tiny golden squares and green lines, indicating complex circuitry. A dark, liquid substance, likely flux, is spread around the component being worked on.
    
    At 0:03, a soldering gun is introduced into the frame from the top right, aiming at the component. The person uses the soldering gun to apply heat to the component.
    
    At 0:07, a pair of tweezers is used to gently tap and move the component, ensuring the solder melts evenly.
    
    At 0:13, the tweezers are momentarily removed, and the soldering gun continues to heat the component.
    
    From 0:19 to 0:21, the soldering gun is moved around the component, ensuring all sides are heated.
    
    At 0:28, the soldering gun is briefly moved away, revealing the component still in place.
    
    At 0:38, the soldering gun is back in position, and a pair of tweezers re-enters the frame, now positioned to the left of the 
    component.
    
    From 0:42 to 0:45, the tweezers are used to nudge the component from its left side, testing the fluidity of the solder.       
    
    From 0:52 to 1:29, the tweezers are continuously used to gently push and wiggle the component, slowly detaching it as the heat from the soldering gun melts the solder. The component rocks back and forth, indicating it's becoming loose.
    
    At 1:30, the component appears fully detached from one side, and the person continues to heat and manipulate it with the tweezers to fully free it.
    
    At 1:38, the component is successfully removed from the circuit board, leaving behind an empty space and the dark liquid flux. The soldering gun is then removed from the frame.
    
    

    Swoją drogą, te opisy są dość niezłe...



    Przykładowy chat
    Oczywiście można też zrobić łatwo namiastkę klasycznego chatu, takiego jaki stał się popularny wraz z wejściem ChatGPT. Prosta rozmowa z asystentem. Tu warto jedynie zwrócić uwagę, że przy tworzeniu chatu przez AI można zdefiniować prompt systemowy - on określa zachowanie asystenta:
    Kod: Javascript
    Zaloguj się, aby zobaczyć kod

    https://github.com/openshwprojects/GoogleAIDemos/blob/main/chat.js
    Najprostszy chat nie wspiera dekodowania pogrubień, bloków code, itd, ale reszta zachowania jest zgodna z tym co znamy z oficjalnych produktów:
    Zrzut ekranu czatu Gemini z pytaniami o Arduino i odpowiedziami w formie akapitów oraz listy kroków.


    Własne narzędzia dla AI
    Współczesna sztuczna inteligencja potrafi również skutecznie posługiwać się narzędziami. Używany przez nas interfejs ma do tego dedykowane rozwiązanie, gdzie my definiujemy zbiór tools, a model potem z nich wedle własnego uznania korzysta. Dla przykładu zrobiłem symulowany kontroler świateł w domu:
    Kod: JSON
    Zaloguj się, aby zobaczyć kod

    Do tego dałem odpowiedni prompt informujący o roli korytarza. Pelen kod:
    https://github.com/openshwprojects/GoogleAIDemos/blob/main/homeControl.js
    Rezultat:
    Zrzut ekranu aplikacji „My Home” z czatem asystenta Gemini i listą pomieszczeń z przełącznikami świateł.
    Jak widać AI potrafi zrozumieć kontekst sytuacyjny i przykładowo zapala światło w korytarzu gdy idę do garażu, mimo iż nic o tym korytarzu nie napisałem.

    Podsumowanie
    Tak wyglądają możliwości współczesnych modeli AI ogólnodostępnych przez API. Wszystko to można dowolnie integrować ze swoimi projektami, choć trzeba być świadomym cen usług (tokenów), gdyż w przypadku nierestrykcyjnego użycia można szybko nabić sobie duże koszty.
    Prezentacje w tym temacie bazowałem na języku Javascript z NodeJS, choć równie dobrze można łączyć się z poziomu Pythona czy tam dowolnego innego języka. Podobnie tutaj opierałem się tylko na modelach od Google, choć dostępne są różne alternatywy - przykładowo od OpenAI czy Anthropic.
    W razie problemów i tak pomoże samo AI - przerzucenie czy nawet rekonstrukcja tak prostych przykładów nie jest trudna dla współczesnych modeli, ten temat raczej stanowi prezentacje co jest możliwe, a nie jak należy to robić z poziomu kodu.
    Bez wątpienia dzisiejsze systemy sztucznej inteligencji potrafią poprawnie przetwarzać tekst i obrazy, a również jak widać radzą sobie też z dźwiękiem i filmami.
    Czy korzystacie ze sztucznej inteligencji poprzez API w swoich projektach, a jeśli tak, to do czego?

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14766 postów o ocenie 12900, pomógł 659 razy. Jest z nami od 2014 roku.
Słuchaj:
REKLAMA