Utwórz interfejs czatu oparty na sztucznej inteligencji (AI) dla interfejsów programowania systemów biznesowych i pozwól współpracownikom zadawać pytania na temat danych biznesowych. Analizowanie i raportowanie danych organizacji jest niezbędne do polepszania działalności firmy. Znalezienie problemów, odkrywanie trendów i analizowanie wyników są możliwe dzięki odpowiednim danym, ale jako programista możesz mieć problem z pomocą kolegom, którzy nie znają się na programowaniu, w odnalezieniu odpowiednich danych.
Projekt SQL Talk to aplikacja open source, która korzysta z generatywnej AI do odpowiadania na pytania dotyczące danych biznesowych. Projekt korzysta z interfejsu Gemini API i funkcji wywołania funkcji, aby przekształcać pytania dotyczące danych biznesowych w zapytania SQL i wywołania interfejsu API, a następnie przekształcać wyniki z powrotem w prosty język. Możesz użyć tego projektu jako punktu wyjścia do tworzenia agenta danych dla swojej firmy i pomagać współpracownikom w znajdowaniu odpowiedzi bez konieczności pisania dużej ilości kodu jednorazowego użytku.
Film z omówieniem projektu i jego rozszerzania, w tym z opiniami jego twórców, znajdziesz na stronie AI Data Agent | Build with Google AI (w języku angielskim). W przeciwnym razie możesz rozpocząć rozszerzanie projektu, korzystając z podanych niżej instrukcji.
Rysunek 1. Interfejs aplikacji projektu SQL Talk
Konfigurowanie projektu
Te instrukcje przeprowadzą Cię przez proces konfiguracji projektu SQL Talk na potrzeby rozwoju i testowania. Ogólne czynności to utworzenie projektu SQL Talk, skonfigurowanie projektu programistycznego Google Cloud Shell Editor, uzyskanie identyfikatora projektu Google Cloud i skonfigurowanie ustawień projektu za pomocą skryptu. Z tych instrukcji dowiesz się, jak skonfigurować projekt za pomocą edytora Cloud Shell, który umożliwia szybkie i wygodne konfigurowanie, uruchamianie i aktualizowanie projektu.
Tworzenie instancji Cloud Shell dla projektu
Projekt SQL Talk możesz skonfigurować, klonując repozytorium projektu do instancji Cloud Shell. Ten proces konfiguruje wirtualną instancję środowiska programistycznego w infrastrukturze Google Cloud dla projektu i klonuje repozytorium kodu do tego środowiska wirtualnego.
Aby utworzyć instancję Cloud Shell dla SQL Talk:
- Aby utworzyć instancję Cloud Shell SQL Talk, kliknij ten link.
Ten link skonfiguruje instancję edytora Google Cloud Shell i skopiuje do niej repozytorium SQL Talk.
Rysunek 2. Projekt SQL Talk sklonowany do środowiska programistycznego Google Cloud Shell Editor.
Uzyskiwanie identyfikatora projektu Cloud
Projekt SQL Talk używa identyfikatora projektu Google Cloud do łączenia się z usługami Google Cloud, w tym z modelami Gemini. W edytorze Cloud Shell skonfiguruj identyfikator projektu, aby umożliwić aplikacji nawiązywanie połączeń z tymi usługami.
Aby połączyć edytor Cloud Shell z identyfikatorem projektu:
- Otwórz konsolę Google Cloud i w razie potrzeby zaloguj się.
- Wybierz istniejący projekt Cloud lub utwórz nowy.
- Zanotuj identyfikator projektu Cloud.
Połącz instancję edytora z projektem i skonfiguruj projekt. W oknie edytora Cloud Shell na panelu terminala wpisz to polecenie:
gcloud config set project YOUR_PROJECT_ID
Konfigurowanie projektu SQL Talk
Projekt SQL Talk korzysta z usług Google Cloud, w tym usługi bazy danych BigQuery i interfejsu Vertex AI API do łączenia się z modelami Gemini.
Projekt SQL Talk zawiera skrypt setup.sh
, który konfiguruje projekt za pomocą wymaganych usług Google Cloud i uruchamia domyślną wersję projektu.
Aby skonfigurować i uruchomić instancję edytora Cloud Shell projektu:
W oknie terminala w edytorze Cloud Shell przejdź do katalogu projektu Cloud Shell SQL Talk (
/sql-talk-app
):cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
W panelu terminala wpisz to polecenie:
bash setup.sh
Po zakończeniu działania skryptu konfiguracyjnego w oknie terminala w edytorze Cloud Shell powinien wyświetlić się komunikat podobny do tego: To wiadomość, która wskazuje, że proces konfiguracji zakończył się powodzeniem i aplikacja SQL Talk działa:
You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080
Testowanie projektu
Po zakończeniu konfiguracji projektu SQL Talk możesz przetestować aplikację, aby sprawdzić, czy działa zgodnie z oczekiwaniami. Skrypt konfiguracji automatycznie uruchamia aplikację po jej uruchomieniu. Możesz ją ponownie uruchomić, wykonując podane niżej czynności.
Aby uruchomić aplikację SQL Talk:
Jeśli edytor Cloud Shell był nieaktywny i rozłączony, konieczne może być ponowne połączenie z identyfikatorem projektu Cloud.
gcloud config set project YOUR_PROJECT_ID
W panelu terminala okna edytora Cloud Shell przejdź do katalogu projektu Cloud Shell SQL Talk.
cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
W panelu terminala wpisz to polecenie.
~/miniforge/bin/streamlit run app.py --server.enableCORS=false \ --server.enableXsrfProtection=false --server.port 8080
Wyświetl aplikację SQL Talk. W prawym górnym rogu okna edytora Cloud Shell kliknij kolejno przycisk Podgląd w przeglądarce i Podejrzyj na porcie 8080.
Aby wyświetlić aktualizacje aplikacji SQL Talk:
- W podglądzie w przeglądarce aplikacji internetowej SQL Talk odśwież przeglądarkę lub kartę przeglądarki.
Aby zatrzymać aplikację SQL Talk:
- W panelu terminala w edytorze Cloud Shell kliknij Ctrl-C.
Modyfikowanie aplikacji
Możesz zmienić działanie aplikacji SQL Talk i dodać jej nowe możliwości, modyfikując kod Pythona. Z tej sekcji dowiesz się, jak dodać do aplikacji SQL Talk nowe wywołanie funkcji.
Funkcja wywołania funkcji interfejsu Gemini API używa określonej składni do definiowania funkcji, które mają być używane przez model generatywny do odpowiadania na pytania lub rozwiązywania problemów. Nie musi ona dokładnie odpowiadać składni rzeczywistego wywołania interfejsu API. Zamiast tego możesz użyć funkcji wywoływania funkcji, aby wymusić na modelu generatywnym podawanie określonych danych wejściowych lub parametrów zgodnych z składnią wywołania interfejsu API, a następnie użyć tych parametrów do wykonania rzeczywistych wywołań interfejsu API w kodzie aplikacji.
W tym przykładowym wdrożeniu pokazujemy, jak utworzyć definicję wywołania funkcji do wyświetlania ostatnich zapytań lub zadań w bazie danych, a potem zmapować tę definicję do rzeczywistego wywołania interfejsu API w kodzie aplikacji SQL Talk.
Dodawanie definicji wywołania funkcji
Dodaj nowe wywołanie funkcji, aby wyświetlić ostatnie zapytania do bazy danych lub zadania. Definicja ta jest używana przez model generatywny do zrozumienia, co robi wywołanie interfejsu API i jakich parametrów wejściowych wymaga. Ta przykładowa definicja funkcji jest zdefiniowana bez parametrów.
Aby dodać do aplikacji nowe wywołanie funkcji:
- W oknie edytora Cloud Shell otwórz plik kodu
sql-talk-app/app.py
. Po deklaracji funkcji
list_datasets_func
dodaj nową funkcjęFunctionDeclaration
.list_jobs_func = FunctionDeclaration( name="list_jobs", description="Get a list of the 10 most recent database requests to help answer the user's question", parameters={ "type": "object", "properties": { }, }, )
Dodaj nową funkcję do obiektu
sql_query_tool
.sql_query_tool = Tool( function_declarations=[ sql_query_func, list_datasets_func, List_jobs_func, # add this new function list_tables_func, get_table_func, ], )
Aby dodać kod, który uruchamia wywołanie interfejsu API dla nowej funkcji:
W pliku kodu
sql-talk-app/app.py
dodaj do pętliwhile function_calling_in_process:
nowe zdanieif
.if response.function_call.name == "list_datasets": ... # add this if clause for list_jobs function if response.function_call.name == "list_jobs": api_response = client.list_jobs(max_results=10) # API request(s) api_response = str([job.job_id for job in api_response]) api_requests_and_responses.append( [response.function_call.name,params, api_response])
Dodatkowe materiały
Więcej informacji o projekcie zapytań SQL znajdziesz w repozytorium kodu oraz w poście na blogu społeczności Cloud o projekcie SQL Talk. Jeśli potrzebujesz pomocy przy tworzeniu aplikacji lub chcesz współpracować z innymi programistami, skorzystaj z serwera Google Developers Community Discord i forum Google Cloud AI/ML. Więcej informacji o projektach z Google AI znajdziesz na tej playliście wideo.