Tworzenie agenta eksploracji danych AI za pomocą Gemini

Utwórz dla swojej firmy interfejs czatu oparty na sztucznej inteligencji (AI) z interfejsami programowania systemu i umożliwić współpracownikom zadawanie pytań firmowych baz danych. Analiza i raportowanie danych organizacji jest jest kluczowe dla usprawnienia działalności firmy. Znajdowanie problemów, odkrywanie trendów i badania wyników jest możliwe dzięki odpowiednim danym, programisty, ułatwienie współpracownikom odkrycia właściwych danych jest wymagające.

SQL Talk Project to aplikacja open source, która wykorzystuje technologię generatywnej AI do Odpowiedz na pytania o firmowe bazy danych. Projekt wykorzystuje interfejs Gemini API oraz wywoływanie funkcji do przekształcania pytań dotyczących firmowych baz danych na zapytania SQL i wywołania interfejsu API, przekształcenia wyników z powrotem na zrozumiały język. Możesz użyć tego projektu jako jest to punkt wyjścia do utworzenia agenta danych dla Twojej firmy. uzyskują odpowiedzi bez konieczności pisania całego kodu.

Filmowe omówienie projektu i sposobów jego rozszerzenia, w tym statystyki od osób, które go stworzyły, Agent danych AI | Tworzenie z użyciem AI od Google. Możesz też rozpocząć przedłużanie projektu przy użyciu: za instrukcje.

Interfejs użytkownika aplikacji projektu SQL Talk

Rysunek 1. Interfejs użytkownika aplikacji projektu SQL Talk.

Konfigurowanie projektu

Te instrukcje przeprowadzą Cię przez proces konfigurowania projektu SQL Talk programowania i testowania. Ogólne kroki to tworzenie SQL Talk projektu, konfigurując edytor Google Cloud Shell w projekcie, uzyskać identyfikator projektu Google Cloud i za pomocą aby skonfigurować ustawienia projektu. W tych instrukcjach opisano, jak uruchomić projekt za pomocą edytora Cloud Shell, który umożliwia a także na szybkie i wygodne aktualizowanie projektu.

Tworzenie instancji Cloud Shell dla projektu

Aby skonfigurować projekt SQL Talk, sklonuj repozytorium projektu do instancji Cloud Shell. Ten proces konfiguruje wirtualne środowisko programistyczne w infrastrukturze Google Cloud projektu i sklonuje plik w tym środowisku wirtualnym.

Aby utworzyć instancję Cloud Shell dla SQL Talk:

Ten link umożliwia skonfigurowanie instancji edytora Google Cloud Shell i skopiowanie lub repozytorium SQL Talk.

Edytor Google Cloud Shell z widocznym kodem projektu SQL Talk

Rysunek 2. Projekt SQL Talk został skopiowany do edytora Google Cloud Shell w środowisku programistycznym.

Uzyskiwanie identyfikatora projektu Cloud

Projekt SQL Talk korzysta z identyfikatora projektu Google Cloud do łączenia się z Google Cloud usług, w tym modeli Gemini. Konfigurujesz identyfikator projektu w sekcji Edytujący Cloud Shell, aby umożliwić aplikacji łączenie się z tymi usługami.

Aby połączyć edytor Cloud Shell z identyfikatorem projektu:

  1. Otwórz Google Cloud konsolę i zaloguj się w razie potrzeby.
  2. Wybierz istniejący projekt Cloud lub utwórz nową.
  3. Zanotuj identyfikator tego projektu w Google Cloud.
  4. Połącz instancję Edytora z projektem i skonfiguruj projekt. W oknie edytora Cloud Shell w panelu terminala wpisz to polecenie:

    gcloud config set project YOUR_PROJECT_ID
    

Konfigurowanie projektu SQL Talk

Do uruchomienia projektu SQL Talk używane są usługi Google Cloud, w tym usługę bazy danych BigQuery oraz Vertex AI API do łączenia się z modelami Gemini. Projekt SQL Talk zawiera skrypt setup.sh, który konfiguruje projekt z wymaganymi usługami Google Cloud i uruchomi domyślną wersję w projektach AI.

Aby skonfigurować i uruchomić instancję edytora Cloud Shell projektu:

  1. W panelu terminala okna edytora Cloud Shell przejdź do Cloud Katalog projektu powłoki SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. W panelu terminala wpisz to polecenie:

    bash setup.sh
    

Po pomyślnym ukończeniu skryptu konfiguracji powinien wyświetlić się komunikat podobny do poniższego okna w oknie terminala edytora Cloud Shell. Ta wiadomość wskazuje, że proces konfiguracji zakończył się powodzeniem, a aplikacja SQL Talk jest bieg:

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ć w aplikacji, aby sprawdzić, czy działa zgodnie z oczekiwaniami. Skrypt konfiguracji automatycznie uruchamia aplikację zaraz po jej uruchomieniu. Można ją później uruchomić ponownie. w następujący sposób.

Aby uruchomić aplikację SQL Talk:

  1. Jeśli edytor Cloud Shell był bezczynny i odłączony, może być konieczne aby ponownie połączyć się z identyfikatorem projektu Cloud.

    gcloud config set project YOUR_PROJECT_ID
    
  2. W panelu terminala okna edytora Cloud Shell przejdź do Cloud Katalog projektu powłoki SQL Talk.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. W panelu terminala wpisz następujące polecenie:

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. Wyświetl aplikację SQL Talk. W prawym górnym rogu edytora Cloud Shell kliknij przycisk Podgląd w przeglądarce, a potem Podejrzyj na porcie 8080.

Nagłówek edytora Cloud Shell z wyróżnionym przyciskiem Podgląd w przeglądarce

Aby wyświetlić aktualizacje aplikacji SQL Talk:

  • W podglądzie przeglądarki internetowej SQL Talk odśwież przeglądarkę lub kartę 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 kod Pythona dla aplikacji. Ta sekcja zawiera informacje na temat dodanie nowego wywołania funkcji do aplikacji SQL Talk.

wywoływanie funkcji interfejsu Gemini API. funkcja używa określonej składni, aby zdefiniować funkcje, które mają być używane przez generatywną do odpowiadania na pytania lub rozwiązywania problemów. Ta składnia nie musi dokładnie pasują do składni rzeczywistego wywołania interfejsu API. Zamiast tego możesz użyć funkcji Wywoływanie funkcji wymuszającej przez model generatywny dostarczanie określonych danych wejściowych lub zgodne ze składnią wywołań interfejsu API, a potem używać ich do wykonywać rzeczywiste wywołania interfejsu API w kodzie aplikacji.

Ta przykładowa implementacja pokazuje, jak utworzyć definicję wywołania funkcji w celu wyświetlenia listy ostatnich zapytań lub zadań do bazy danych, a następnie zmapuj tę definicję rzeczywiste wywołanie API w kodzie aplikacji SQL Talk.

Dodaj definicję wywołania funkcji

Dodaj nowe wywołanie funkcji do wyświetlania listy ostatnich zapytań lub zadań do bazy danych. Ten definicja jest wykorzystywana przez model generatywny do zrozumienia, do czego służy wywołanie interfejsu API i jakich parametrów wejściowych wymaga. Ta przykładowa definicja funkcji to zdefiniowane bez parametrów.

Aby dodać nowe wywołanie funkcji do aplikacji:

  1. W oknie edytora Cloud Shell otwórz plik z kodem w języku sql-talk-app/app.py.
  2. Po deklaracji funkcji list_datasets_func 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": {
      },
    },
    )
    
  3. 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 uruchamiający wywołanie nowej funkcji interfejsu API:

  • W pliku kodu sql-talk-app/app.py dodaj nową klauzulę if do sekcji while function_calling_in_process:pętla

    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 zapytania SQL znajdziesz w repozytorium kodu i przejrzyj Post na blogu społeczności Cloud o projekcie SQL Talk. Jeśli potrzebujesz pomocy przy tworzeniu aplikacji które chcą nawiązać współpracę z innymi programistami, zapoznaj się z artykułem Google Developers Discord oraz Forum Google Cloud AI/ML. Aby dowiedzieć się więcej o projektach Build with Google AI, zapoznaj się z playlisty wideo.