Przykładowy kod źródłowy pozwalający na:
-
Skonfigurowanie własnej instancji modelu Bielik w oparciu o Ollama
-
Skonfigurowanie prostych systemów agentowych przy wykorzystaniu Agent Development Kit
-
Uruchomienie obu powyższych serwisów na Cloud Run
-
Uzyskaj kredyt Cloud OnRamp, lub skonfiguruj płatności w projekcie Google Cloud
-
Przejdź do Google Cloud Console: console.cloud.google.com
-
Stwórz nowy projekt Google Cloud i wybierz go aby był aktywny
Tip
Możesz sprawdzić dostępność kredytów OnRamp wybierając z menu po lewej stronie: Billing / Credits
-
Otwórz Cloud Shell (dokumentacja)
-
Sklonuj repozytorium z przykładowym kodem i przejdź do nowoutworzonego katalogu
git clone https://github.com/avedave/eskadra-bielik-misja1 cd eskadra-bielik-misja1 -
Zmień nazwę pliku
.env.samplena.envmv .env.sample .env
-
Zaktualizuj odpowiednie na tym etapie zmienne środowiskowe w pliku
.envBIELIK_EVENT_ID- Identyfikator warsztatów zgodny z kodem użytym w OnRamp CreditsGOOGLE_CLOUD_LOCATION- zmienną definiującą region Google CloudBIELIK_SERVICE_NAME- domyślną nazwę dla usługi gdzie uruchomimy BielikaBIELIK_MODEL_NAME- wersję Bielika z której będziemy korzystać
Tip
W terminalu Cloud Shell dostępny jest edytor po wybraniu opcji Open Editor
BIELIK_EVENT_ID="<IDENTYFIKATOR>"
GOOGLE_CLOUD_LOCATION="europe-west1" # Europe (Belgium)
BIELIK_SERVICE_NAME="ollama-bielik-v3"
BIELIK_MODEL_NAME="SpeakLeash/bielik-4.5b-v3.0-instruct:Q8_0"Important
Jeżeli zmieniasz w BIELIK_MODEL_NAME domyślny model Bielika na inną wersję, to zaktualizuj tę informację również w pliku ollama-bielik/Dockerfile
ENV MODEL SpeakLeash/bielik-4.5b-v3.0-instruct:Q8_0-
Wczytaj zmienne środowiskowe korzystając z podręcznego skryptu
source reload-env.sh
-
Ustal domyślne konto serwisowe dla wybranego projektu
default service accountgcloud builds get-default-service-account
-
Poniższa komenda stworzy nową usługę w Cloud Run o nazwie takiej jak wartość zmiennej
$BIELIK_SERVICE_NAME. Na podstawie definicji wollama-bielik/Dockerfilenardzędziegcloudstworzy odpowiedni kontener, skonfiguruje usługę Ollama oraz wczyta odpowiednią wersję modelu Bielik.gcloud run deploy $BIELIK_SERVICE_NAME --source ollama-bielik/ --region $GOOGLE_CLOUD_LOCATION --concurrency 7 --cpu 8 --set-env-vars OLLAMA_NUM_PARALLEL=4 --gpu 1 --gpu-type nvidia-l4 --max-instances 1 --memory 16Gi --allow-unauthenticated --no-cpu-throttling --no-gpu-zonal-redundancy --timeout 600 --labels dev-tutorial=codelab-dos-$BIELIK_EVENT_ID
Caution
Flaga --allow-unauthenticated udostępnia usługę publicznie w internecie i każdy kto zna URL, może zaczać z niej korzystać. W środowisku produkcyjnym zazwyczaj trzeba tę flagę usunąć i odpowiednio skonfigurować reguły dostępu.
-
Uruchom poniższą komendę, aby sprawdzić pod jakim URL jest dostępny Bielik
gcloud run services describe $BIELIK_SERVICE_NAME --region=$GOOGLE_CLOUD_LOCATION --format='value(status.url)'
Tip
Odpowiedz twierdząco, jeżeli system spyta o włączenie odpowiednich API oraz stworzenie rejestru artefaktów
- Przypisz powyższy URL do zmiennej środowiskowej
OLLAMA_API_BASEw pliku.envi następnie wczytaj zmienne środowiskowe ponownie:source reload-env.sh
- Sprawdź w Google Cloud console czy nowy serwis jest już dostępny
- Sprawdź czy otwierając URL w przeglądarce zobaczysz informację:
Ollama is running - Sprawdź przez API jakie modele są dostępne lokalnie na serwerze Ollama
curl "${OLLAMA_API_BASE}/api/tags" - Wyślij zapytanie przez API
curl "${OLLAMA_API_BASE}/api/generate" -d "{ \"model\": \"$BIELIK_MODEL_NAME\", \"prompt\": \"Kto zabił smoka wawelskiego?\", \"stream\": false }"
-
Skonfiguruj swój własny klucz Gemini API
- Stwórz lub skopiuj istniejący Gemini API key z Google AI Studio.
- Dodaj wartość klucza ze swojego Gemini API key jako wartość zmiennej
GOOGLE_API_KEYw pliku.env
GOOGLE_API_KEY=TWÓJ_KLUCZ
-
Wczytaj zmienne środowiskowe ponownie
source reload-env.sh -
Przejdź do katalogu z agentami
cd adk-agents -
Stwórz i aktywuj wirtualne środowisko Python
python -m venv .venv source .venv/bin/activate -
Zainstaluj wymagane komponenty
pip install -r requirements.txt
Ten prosty system agentowy, działający jedynie w oparciu o model Bielik, jest prostym przykładem wykorzystania LLM Agents oraz Workflow Agents dostępnych w ADK. System ma na celu generowanie artykułów dla różnych grup docelowych (dzieci, kadra zarządzająca) w oparciu o temat zasugerowany przez użytkownika.
content_creator_agent- Główny, sekwencyjny agent, uruchamia pod-agentów jeden po drugimtopic_identifier_agent- Agent LLM odpowiedzialny za zidentyfikowanie tematu którym interesuje się użytkownik.topic_expander_agent- Agent LLM odpowiedzialny za rozwinięcie tematu. Generuje listę ciekawych faktów związanych z tematem.authoring_agent- Agent równoległy - uruchamia pod-agentów równolegle. Zawiera dwóch pod-agentów, po jednym na każdą grupę docelowąchildren_audience_agent- Agent LLM odpowiedzialny za tworzenie treści skierowanych do dzieci.executive_audience_agent- Agent LLM odpowiedzialny za tworzenie treści skierowanych do kadry zarządzającej.
graph TD
subgraph content_creator_agent [content_creator_agent:SequentialAgent]
direction LR
topic_identifier_agent("topic_identifier_agent:Agent") --> topic_expander_agent("topic_expander_agent:Agent");
topic_expander_agent --> authoring_agent;
end
subgraph authoring_agent [authoring_agent:ParallelAgent]
direction TB
children_audience_agent("children_audience_agent:Agent");
executive_audience_agent("executive_audience_agent:Agent");
end
-
Upewnij się, że jesteś w katalogu
adk_agentsoraz że wszystkie zmienne środowiskowe są załadowane -
Uruchom agenta w konsoli Cloud Shell i rozpocznij interakcję
adk run content_creator/
Ten hybrydowy system agentowy, działający w oparciu o modele Gemini i Bielik, jest przykładem wykorzystania Agentów LLM (LLM Agents), funkcji-jako-narzędzi (Function Tools) oraz agentów-jako-narzędzi (Agent-as-a-tTool) dostępnych w ADK.
System ma na celu pełnienie roli międzynarodowego przewodnika kulinarnego, który deleguje zadania do wyspecjalizowanych pod-agentów lub narzędzi w zależności od kraju, o który pyta użytkownik.
culinary_guide_agent- Główny agent, który komunikuje się z użytkownikiem w języku angielskim. Jego zadaniem jest zrozumienie prośby o rekomendacje kulinarne, identyfikacja kraju i preferencji dietetycznych, a następnie delegowanie zadania do odpowiednich narzędzi.polish_expert_tool- Narzędzie typu AgentTool, które opakowuje agenta polish_culinary_expert_agent, umożliwiając głównemu agentowi korzystanie z jego wyspecjalizowanych zdolności.polish_culinary_expert_agent- Wyspecjalizowany Agent LLM oparty na modelu Bielik, ekspert w dziedzinie kuchni polskiej. Przyjmuje zapytania i odpowiada wyłącznie w języku polskim.german_food_tool- Proste narzędzie oparte na funkcji Pythona, które dostarcza rekomendacji kulinarnych dla Niemiec w oparciu o zdefiniowaną logikę.
graph TD
subgraph Culinary Recommendation System
direction TB
%% Define the Root Agent
A[fa:fa-robot culinary_guide_agent]
%% Define the Tools
subgraph polish_expert_tool
direction TB
B[fa:fa-wrench AgentTool] --> C[fa:fa-robot polish_culinary_agent]
end
D[fa:fa-wrench german_food_tool]
%% Define the relationships
A --> B
A --> D
end
-
Upewnij się, że jesteś w katalogu
adk_agentsoraz że wszystkie zmienne środowiskowe są załadowane -
Uruchom agenta w konsoli Cloud Shell i rozpocznij interakcję
adk run culinary_guide_agent/
- Upewnij się, że jesteś w katalogu
adk_agentsoraz że wszystkie zmienne środowiskowe są załadowane - Uruchom środowisko ADK Web
adk web
- Zmień port w Web View (jeżeli potrzeba, zazwyczaj jest to port 8000)
- Zaakceptuj zmiany poprzez: Change and Preview
- Z rozwijanego menu po lewej stronie ekranu wybierz system z którym chcesz pracować
- Upewnij się, że jesteś w katalogu
adk_agentsoraz że wszystkie zmienne środowiskowe są załadowanegcloud run deploy adk-agents --source . --region $GOOGLE_CLOUD_LOCATION --allow-unauthenticated --set-env-vars GOOGLE_CLOUD_LOCATION=$GOOGLE_CLOUD_LOCATION --set-env-vars OLLAMA_API_BASE=$OLLAMA_API_BASE --set-env-vars GOOGLE_API_KEY=$GOOGLE_API_KEY --labels dev-tutorial=codelab-dos-$BIELIK_EVENT_ID
Caution
Flaga --allow-unauthenticated udostępnia usługę publicznie w internecie i każdy kto zna URL, może zaczać z niej korzystać. W środowisku produkcyjnym zazwyczaj trzeba tę flagę usunąć i odpowiednio skonfigurować reguły dostępu.
- Narzędzie
gcloudstworzy kontener na podstawie konfiguracji zawartej wadk-agents/Dockerfilei uruchomi usługę w Cloud Run, podając URL pod którym serwis będzie dostępny - Wywołaj otrzymany URL w przeglądarce WWW aby mieć dostęp do środowiska ADK Web