Opracuj interfejs czatu oparty na sztucznej inteligencji (AI) dla interfejsów programowania używanych przez Ciebie systemów biznesowych i pozwól współpracownikom zadawać pytania na temat firmowych baz danych. Analizowanie i raportowanie danych organizacji ma kluczowe znaczenie dla usprawnienia działalności. Znajdowanie problemów, odkrywanie trendów i badanie wyników jest możliwe, jeśli dysponujesz odpowiednimi danymi, ale gdy jesteś programistą, pomaganie współpracownikom w odkryciu właściwych danych może być nie lada wyzwaniem.
Projekt SQL Talk to aplikacja typu open source, która wykorzystuje technologię generatywnej AI do odpowiadania na pytania dotyczące firmowych baz danych. Projekt korzysta z interfejsu Gemini API i funkcji wywołania funkcji, aby przekształcać pytania dotyczące firmowych baz danych w zapytania SQL i wywołania interfejsu API, a następnie przekształcać wyniki z powrotem na uproszczony język. Możesz użyć tego projektu jako punktu wyjścia do opracowania agenta danych dla swojej firmy i pomóc współpracownikom uzyskać odpowiedzi bez konieczności pisania obszernego kodu jednorazowego.
Film z omówieniem projektu i jego możliwości rozwoju (w tym informacji od osób, które go tworzą, znajdziesz w filmie o agencji danych AI | Build with Google AI). W przeciwnym razie możesz rozpocząć rozszerzanie projektu, korzystając z poniższych instrukcji.
Rysunek 1. Interfejs użytkownika aplikacji projektu SQL Talk.
Konfigurowanie projektu
Te instrukcje przeprowadzą Cię przez proces konfigurowania projektu SQL Talk na potrzeby programowania i testowania. Ogólne kroki: utworzenie projektu SQL Talk, skonfigurowanie projektu programistycznego edytora Google Cloud Shell, uzyskanie identyfikatora projektu Google Cloud oraz użycie skryptu do skonfigurowania ustawień projektu. Te instrukcje pokazują, jak skonfigurować projekt za pomocą edytora Cloud Shell, dzięki czemu konfigurowanie, uruchamianie i aktualizowanie projektu jest szybkie i wygodne.
Utwórz instancję Cloud Shell dla projektu
Projekt SQL Talk możesz skonfigurować, sklonując repozytorium projektu do instancji Cloud Shell. Ten proces konfiguruje wirtualne środowisko programistyczne w infrastrukturze Google Cloud dla projektu i klonuje repozytorium kodu do tego środowiska wirtualnego.
Aby utworzyć instancję Cloud Shell dla SQL Talk:
- Kliknij ten link, aby utworzyć instancję SQL Talk w Cloud Shell.
Ten link konfiguruje instancję edytora Google Cloud Shell i sklonuje do niej repozytorium SQL Talk.
Rysunek 2. Projekt SQL Talk sklonowany do środowiska programistycznego edytora Google Cloud Shell.
Pobieranie identyfikatora projektu Cloud
Projekt SQL Talk korzysta z identyfikatora projektu Google Cloud do łączenia się z usługami Google Cloud, w tym z modelami Gemini. W edytorze Cloud Shell konfigurujesz identyfikator projektu, aby umożliwić aplikacji łączenie się 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 w chmurze.
Połącz instancję Edytora z projektem i skonfiguruj projekt. W oknie edytora Cloud Shell otwórz panel terminala i wpisz to polecenie:
gcloud config set project YOUR_PROJECT_ID
Konfigurowanie projektu SQL Talk
Do uruchomienia projektu SQL Talk wykorzystuje usługi Google Cloud, w tym usługę bazy danych BigQuery i interfejs Vertex AI API do łączenia się z modelami Gemini.
Projekt SQL Talk zawiera skrypt setup.sh
, który konfiguruje w projekcie wymagane usługi Google Cloud i uruchamia domyślną wersję projektu.
Aby skonfigurować i uruchomić instancję edytora Cloud Shell projektu:
W panelu terminala okna edytora 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 następujące polecenie:
bash setup.sh
Gdy skrypt konfiguracji zostanie ukończony, w oknie terminala edytora Cloud Shell powinien pojawić się komunikat podobny do tego. Ten komunikat oznacza, że proces konfiguracji został ukończony, a aplikacja SQL Talk jest uruchomiona:
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 uruchomieniu. Możesz ją uruchomić ponownie, wykonując poniższe czynności.
Aby uruchomić aplikację SQL Talk:
Jeśli edytor Cloud Shell był nieaktywny i odłą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 następujące 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 wybierz przycisk Podgląd w przeglądarce, a następnie Podejrzyj na porcie 8080.
Aby wyświetlić aktualizacje aplikacji SQL Talk:
- W Podglądzie sieci w aplikacji internetowej SQL Talk załaduj ponownie kartę przeglądarki lub przeglądarki.
Aby zatrzymać aplikację SQL Talk:
- W panelu terminala okna edytora Cloud Shell naciśnij Ctrl+C.
Modyfikowanie aplikacji
Możesz zmienić działanie i dodać możliwości do aplikacji SQL Talk, modyfikując jej kod w Pythonie. W tej sekcji opisujemy, jak dodać nowe wywołanie funkcji do aplikacji SQL Talk.
Funkcja wywołania funkcji interfejsu Gemini API używa określonej składni do definiowania funkcji używanych przez model generatywny do odpowiadania na pytania lub rozwiązywania problemów. Składnia ta nie musi dokładnie odpowiadać składni rzeczywistego wywołania interfejsu API. Zamiast tego używasz funkcji wywoływania funkcji, aby wymuszać na modelu generatywnym dostarczenie określonych danych wejściowych lub parametrów zgodnych ze składnią wywołań interfejsu API, a następnie używać tych parametrów do wykonywania rzeczywistych wywołań interfejsu API w kodzie aplikacji.
Ta przykładowa implementacja pokazuje, jak utworzyć definicję wywołania funkcji na potrzeby listy ostatnich zapytań lub zadań do bazy danych, a następnie zmapować tę definicję na rzeczywiste wywołanie interfejsu API w kodzie aplikacji SQL Talk.
Dodawanie definicji wywołania funkcji
Dodaj nowe wywołanie funkcji do wyświetlania listy ostatnich zapytań lub zadań do bazy danych. Ta definicja jest używana przez model generatywny do zrozumienia, jak działa wywołanie interfejsu API i jakich parametrów wejściowych wymaga. Ta przykładowa definicja funkcji jest zdefiniowana bez parametrów.
Aby dodać nowe wywołanie funkcji do aplikacji:
- W oknie edytora Cloud Shell otwórz plik z kodem
sql-talk-app/app.py
. Po deklaracji
list_datasets_func
deklaracji funkcji dodaj nową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 powodujący uruchomienie wywołania interfejsu API dla nowej funkcji:
W pliku z kodem
sql-talk-app/app.py
dodaj nową klauzulęif
do pętliwhile function_calling_in_process:
.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 SQL Query znajdziesz w repozytorium kodu, a także w poście na blogu społeczności Cloud na temat projektu SQL Talk. Jeśli potrzebujesz pomocy w tworzeniu aplikacji lub chcesz współpracować z innymi programistami, odwiedź serwer Google Developers Community Discord lub forum Google Cloud AI/ML. Aby obejrzeć więcej projektów AI w ramach usługi Build with Google, obejrzyj playlistę wideo.