Wprowadzenie
W dzisiejszym dynamicznym świecie obsługa klienta jest kluczowym aspektem każdego biznesu. Bot odpowiedzi Zendesk, oparty na modelach dużego języka (LLM), takich jak GPT-4, może znacznie zwiększyć wydajność i jakość obsługi klienta poprzez automatyzację odpowiedzi. Ten post na blogu poprowadzi Cię przez proces tworzenia i wdrażania własnego Zendesk Auto Responder przy użyciu LLM i wdrażania przepływów pracy opartych na RAG w GenAI w celu usprawnienia procesu.
Czym są przepływy pracy oparte na RAG w GenAI
Przepływy pracy oparte na RAG (Retrieval Augmented Generation) w GenAI (Generative AI) łączą zalety wyszukiwania i generowania w celu zwiększenia możliwości systemu AI, szczególnie w zakresie obsługi rzeczywistych danych specyficznych dla domeny. Krótko mówiąc, RAG umożliwia sztucznej inteligencji pobieranie odpowiednich informacji z bazy danych lub innych źródeł w celu wspierania generowania dokładniejszych i bardziej świadomych odpowiedzi. Jest to szczególnie korzystne w środowisku biznesowym, gdzie dokładność i kontekst mają kluczowe znaczenie.
Jakie są elementy przepływu pracy opartego na RAG
- Baza wiedzy: Baza wiedzy to scentralizowane repozytorium informacji, do których odwołuje się system odpowiadając na zapytania. Może zawierać często zadawane pytania, instrukcje i inne istotne dokumenty.
- Wyzwalacz/zapytanie: Komponent ten odpowiada za inicjowanie przepływu pracy. Zwykle jest to pytanie lub prośba klienta, które wymagają odpowiedzi lub działania.
- Zadanie/Działanie: Na podstawie analizy wyzwalacza/zapytania system wykonuje określone zadanie lub akcję, np. wygenerowanie odpowiedzi lub wykonanie operacji backendowej.
Kilka przykładów przepływów pracy opartych na RAG
- Przebieg interakcji z klientem w bankowości:
- Chatboty zasilane przez GenAI i RAG mogą znacząco poprawić wskaźniki zaangażowania w branży bankowej poprzez personalizację interakcji.
- Za pośrednictwem RAG chatboty mogą pobierać i wykorzystywać odpowiednie informacje z bazy danych w celu generowania spersonalizowanych odpowiedzi na zapytania klientów.
- Na przykład podczas sesji czatu system GenAI oparty na RAG może pobrać historię transakcji klienta lub informacje o koncie z bazy danych, aby zapewnić bardziej świadome i spersonalizowane odpowiedzi.
- Ten przepływ pracy nie tylko zwiększa zadowolenie klientów, ale także potencjalnie zwiększa wskaźnik retencji, zapewniając bardziej spersonalizowaną i pouczającą interakcję.
- Przebieg kampanii e-mailowych:
- W marketingu i sprzedaży tworzenie ukierunkowanych kampanii jest kluczowe.
- RAG można wykorzystać do pobierania najnowszych informacji o produktach, opinii klientów lub trendów rynkowych ze źródeł zewnętrznych, aby pomóc w generowaniu bardziej świadomych i skutecznych materiałów marketingowych/sprzedażowych.
- Na przykład podczas tworzenia kampanii e-mailowej przepływ pracy oparty na RAG może pobrać najnowsze pozytywne recenzje lub nowe funkcje produktu, które można uwzględnić w treści kampanii, potencjalnie poprawiając w ten sposób wskaźniki zaangażowania i wyniki sprzedaży.
- Zautomatyzowany przepływ dokumentacji i modyfikacji kodu:
- Początkowo system RAG może pobrać istniejącą dokumentację kodu, bazę kodu i standardy kodowania z repozytorium projektu.
- Kiedy programista musi dodać nową funkcję, RAG może wygenerować fragment kodu zgodnie ze standardami kodowania projektu, odwołując się do pobranych informacji.
- Jeżeli konieczna jest modyfikacja w kodzie, system RAG może zaproponować zmiany, analizując istniejący kod i dokumentację, zapewniając spójność i zgodność ze standardami kodowania.
- Modyfikacja lub dodanie kodu pocztowego RAG może automatycznie zaktualizować dokumentację kodu, aby odzwierciedlić zmiany, pobierając niezbędne informacje z bazy kodów i istniejącej dokumentacji.
Jak pobrać i zindeksować wszystkie bilety Zendesk w celu odzyskania
Zacznijmy teraz od samouczka. Zbudujemy bota, który będzie odpowiadać na przychodzące zgłoszenia Zendesk, korzystając z niestandardowej bazy danych poprzednich zgłoszeń i odpowiedzi Zendesk w celu wygenerowania odpowiedzi za pomocą LLM.
- Uzyskaj dostęp do API Zendeska: Użyj Zendesk API, aby uzyskać dostęp i pobrać wszystkie bilety. Upewnij się, że masz niezbędne uprawnienia i klucze API, aby uzyskać dostęp do danych.
Najpierw tworzymy nasz klucz API Zendesk. Upewnij się, że jesteś administratorem i odwiedź poniższy link, aby utworzyć klucz API – https://TWOJA_SUBDOMAIN.zendesk.com/admin/apps-integrations/apis/zendesk-api/settings/tokens
Utwórz klucz API i skopiuj go do schowka.
Zacznijmy teraz od notatnika Pythona.
Wprowadzamy nasze dane uwierzytelniające Zendesk, w tym klucz API, który właśnie uzyskaliśmy.
subdomain = YOUR_SUBDOMAIN
username = ZENDESK_USERNAME
password = ZENDESK_API_KEY
username = '{}/token'.format(username)
Pobieramy teraz dane biletu. W poniższym kodzie pobraliśmy zapytania i odpowiedzi z każdego biletu i przechowujemy każdy zestaw [zapytanie, tablica odpowiedzi] reprezentujący bilet w tablicy o nazwie dane biletu.
Pobieramy tylko ostatnie 1000 biletów. Możesz to zmodyfikować według potrzeb.
import requests ticketdata = []
url = f"https://{subdomain}.zendesk.com/api/v2/tickets.json" params = {"sort_by": "created_at", "sort_order": "desc"} headers = {"Content-Type": "application/json"} tickettext = "" while len(ticketdata) <= 1000: response = requests.get( url, auth=(username, password), params=params, headers=headers ) tickets = response.json()["tickets"] for ticket in tickets: ticketid = ticket["id"] url = f"https://{subdomain}.zendesk.com/api/v2/tickets/{ticketid}/comments.json" headers = { "Content-Type": "application/json", } response2 = requests.get(url, auth=(username, password), headers=headers) try: comments = response2.json()["comments"] except: comments = ["", ""] ticketelement = [ticketid, comments] ticketdata.append(ticketelement) if response.json()["next_page"]: url = response.json()["next_page"] else: break
Jak widać poniżej, pobraliśmy dane dotyczące zgłoszeń z bazy danych Zendesk. Każdy element w dane biletu zawiera -
A. Identyfikator biletu
B. Wszystkie komentarze/odpowiedzi w zgłoszeniu.
Następnie przechodzimy do utworzenia ciągu tekstowego zawierającego zapytania i pierwsze odpowiedzi ze wszystkich pobranych zgłoszeń, używając metody dane biletu szyk.
for ticket in ticketdata: try: text = ( "nnn" + "Question - " + ticket[1][0]["body"] + "n" + "Answer - " + ticket[1][1]["body"] ) tickettext = tickettext + text except: pass
Połączenia tekst biletu string zawiera teraz wszystkie zgłoszenia i pierwsze odpowiedzi, przy czym dane każdego zgłoszenia są oddzielone znakami nowej linii.
Opcjonalny : Możesz także pobrać dane z artykułów pomocy technicznej Zendesk, aby jeszcze bardziej rozszerzyć bazę wiedzy, uruchamiając poniższy kod.
import re def remove_tags(text): clean = re.compile("<.*?>") return re.sub(clean, "", text) articletext = ""
try: articledata = [] url = f"https://{subdomain}.zendesk.com/api/v2/help_center/en-us/articles.json" headers = {"Content-Type": "application/json"} while True: response = requests.get(url, auth=(username, password), headers=headers) articles = response.json()["articles"] for article in articles: articledata.append([article["title"], article["html_url"], article["body"]]) if response.json()["next_page"]: url = response.json()["next_page"] else: break for article in articledata: text = ( "nnn" + "Support Page Title - " + article[0] + "n" + "Support Page Link - " + article[1] + "n" + "Support Page Body - " + article[2] ) articletext = articletext + remove_tags(text)
except: pass
Ciąg znaków tekst artykułu zawiera tytuł, link i treść każdej części artykułu na stronach wsparcia Zendesk.
Opcjonalnie : Możesz podłączyć swoją bazę danych klientów lub inną odpowiednią bazę danych, a następnie używać jej podczas tworzenia magazynu indeksów.
Połącz pobrane dane.
knowledge = tickettext + "nnn" + articletext
- Bilety indeksowe: Po pobraniu zindeksuj bilety przy użyciu odpowiedniej metody indeksowania, aby ułatwić szybkie i skuteczne wyszukiwanie.
Aby to zrobić, najpierw instalujemy zależności wymagane do utworzenia magazynu wektorów.
pip install langchain openai pypdf faiss-cpu
Utwórz magazyn indeksów, korzystając z pobranych danych. Będzie to służyć jako nasza baza wiedzy, gdy będziemy próbować odpowiedzieć na nowe zgłoszenia za pośrednictwem GPT.
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY" from langchain.document_loaders import PyPDFLoader
from langchain.vectorstores import FAISS
from langchain.chat_models import ChatOpenAI
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA, ConversationalRetrievalChain
from transformers import GPT2TokenizerFast
import os
import pandas as pd
import numpy as np tokenizer = GPT2TokenizerFast.from_pretrained("gpt2") def count_tokens(text: str) -> int: return len(tokenizer.encode(text)) text_splitter = RecursiveCharacterTextSplitter( chunk_size=512, chunk_overlap=24, length_function=count_tokens,
) chunks = text_splitter.create_documents([knowledge]) token_counts = [count_tokens(chunk.page_content) for chunk in chunks]
df = pd.DataFrame({"Token Count": token_counts})
embeddings = OpenAIEmbeddings()
db = FAISS.from_documents(chunks, embeddings)
path = "zendesk-index"
db.save_local(path)
Twój indeks zostanie zapisany w systemie lokalnym.
- Regularnie aktualizuj indeks: Regularnie aktualizuj indeks o nowe zgłoszenia i modyfikacje istniejących, zapewniając systemowi dostęp do najbardziej aktualnych danych.
Możemy zaplanować uruchamianie powyższego skryptu co tydzień i aktualizować nasz „zendesk-index” lub dowolną inną żądaną częstotliwość.
Jak przeprowadzić pobieranie, gdy nadejdzie nowy bilet
- Monitoruj nowe bilety: Skonfiguruj system ciągłego monitorowania Zendesk pod kątem nowych zgłoszeń.
Stworzymy podstawowe API Flask i hostujemy je. Rozpocząć,
- Utwórz nowy folder o nazwie „Zendesk Answer Bot”.
- Dodaj folder db FAISS „zendesk-index” do folderu „Zendesk Answer Bot”.
- Utwórz nowy plik Pythona zendesk.py i skopiuj do niego poniższy kod.
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/zendesk', methods=['POST'])
def zendesk(): return 'dummy response' if __name__ == '__main__': app.run(port=3001, debug=True)
- Uruchom kod Pythona.
- Pobierz i skonfiguruj ngrok korzystając z instrukcji tutaj. Upewnij się, że skonfigurowałeś token uwierzytelniania ngrok w swoim terminalu zgodnie ze wskazówkami na łączu.
- Otwórz nową instancję terminala i uruchom poniższe polecenie.
ngrok http 3001
- Udostępniliśmy teraz naszą usługę Flask za pośrednictwem zewnętrznego adresu IP, za pomocą którego możemy wykonywać wywołania API do naszej usługi z dowolnego miejsca.
- Następnie konfigurujemy Zendesk Webhook, odwiedzając następujący link – https://TWOJA_SUBDOMAIN.zendesk.com/admin/apps-integrations/webhooks/webhooks LUB bezpośrednio uruchamiając poniższy kod w naszym oryginalnym notatniku Jupyter.
UWAGA: Należy pamiętać, że chociaż używanie ngrok jest dobre do celów testowych, zdecydowanie zaleca się przeniesienie usługi Flask API do instancji serwera. W takim przypadku statyczny adres IP serwera stanie się punktem końcowym Zendesk Webhook i będziesz musiał skonfigurować punkt końcowy w swoim Zendesk Webhook, aby wskazywał ten adres – https://YOUR_SERVER_STATIC_IP:3001/zendesk
zendesk_workflow_endpoint = "HTTPS_NGROK_FORWARDING_ADDRESS" url = "https://" + subdomain + ".zendesk.com/api/v2/webhooks"
payload = { "webhook": { "endpoint": zendesk_workflow_endpoint, "http_method": "POST", "name": "Nanonets Workflows Webhook v1", "status": "active", "request_format": "json", "subscriptions": ["conditional_ticket_events"], }
}
headers = {"Content-Type": "application/json"} auth = (username, password) response = requests.post(url, json=payload, headers=headers, auth=auth)
webhook = response.json() webhookid = webhook["webhook"]["id"]
- Skonfigurowaliśmy teraz wyzwalacz Zendesk, który uruchomi powyższy webhook, który właśnie stworzyliśmy, aby uruchamiał się za każdym razem, gdy pojawi się nowy bilet. Możemy skonfigurować wyzwalacz Zendesk, odwiedzając następujący link – https://TWOJA_SUBDOMAIN.zendesk.com/admin/objects-rules/rules/triggers LUB bezpośrednio uruchamiając poniższy kod w naszym oryginalnym notatniku Jupyter.
url = "https://" + subdomain + ".zendesk.com/api/v2/triggers.json" trigger_payload = { "trigger": { "title": "Nanonets Workflows Trigger v1", "active": True, "conditions": {"all": [{"field": "update_type", "value": "Create"}]}, "actions": [ { "field": "notification_webhook", "value": [ webhookid, json.dumps( { "ticket_id": "{{ticket.id}}", "org_id": "{{ticket.url}}", "subject": "{{ticket.title}}", "body": "{{ticket.description}}", } ), ], } ], }
} response = requests.post(url, auth=(username, password), json=trigger_payload)
trigger = response.json()
- Uzyskaj istotne informacje: Kiedy nadejdzie nowe zgłoszenie, skorzystaj ze zindeksowanej bazy wiedzy, aby uzyskać odpowiednie informacje i wcześniejsze zgłoszenia, które mogą pomóc w wygenerowaniu odpowiedzi.
Po skonfigurowaniu wyzwalacza i webhooka Zendesk zadba o to, aby nasza aktualnie działająca usługa Flask otrzymała wywołanie API na trasie /zendesk z identyfikatorem, tematem i treścią zgłoszenia za każdym razem, gdy nadejdzie nowy bilet.
Musimy teraz skonfigurować naszą usługę Flask
A. wygeneruj odpowiedź, korzystając z naszego magazynu wektorów „zendesk-index”.
B. zaktualizuj zgłoszenie wygenerowaną odpowiedzią.
Zastępujemy nasz obecny kod usługi flask w zendesk.py poniższym kodem –
from flask import Flask, request, jsonify
from langchain.document_loaders import PyPDFLoader
from langchain.vectorstores import FAISS
from langchain.chat_models import ChatOpenAI
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA, ConversationalRetrievalChain
from transformers import GPT2TokenizerFast
import os
import pandas as pd
import numpy as np app = Flask(__name__) @app.route('/zendesk', methods=['POST'])
def zendesk(): updatedticketjson = request.get_json() zenembeddings = OpenAIEmbeddings() query = updatedticketjson['body'] zendb = FAISS.load_local('zendesk-index', zenembeddings) docs = zendb.similarity_search(query) if __name__ == '__main__': app.run(port=3001, debug=True)
Jak widać, przeprowadziliśmy wyszukiwanie podobieństw w naszym indeksie wektorowym i pobraliśmy najbardziej odpowiednie bilety i artykuły, aby pomóc w wygenerowaniu odpowiedzi.
Jak wygenerować odpowiedź i opublikować ją w Zendesk
- Wygeneruj odpowiedź: Wykorzystaj LLM, aby wygenerować spójną i dokładną odpowiedź na podstawie uzyskanych informacji i przeanalizowanego kontekstu.
Kontynuujmy teraz konfigurowanie naszego punktu końcowego API. Następnie modyfikujemy kod, jak pokazano poniżej, aby wygenerować odpowiedź na podstawie uzyskanych odpowiednich informacji.
@app.route("/zendesk", methods=["POST"])
def zendesk(): updatedticketjson = request.get_json() zenembeddings = OpenAIEmbeddings() query = updatedticketjson["body"] zendb = FAISS.load_local("zendesk-index", zenembeddings) docs = zendb.similarity_search(query) zenchain = load_qa_chain(OpenAI(temperature=0.7), chain_type="stuff") answer = zenchain.run(input_documents=docs, question=query)
Połączenia odpowiedź zmienna będzie zawierać wygenerowaną odpowiedź.
- Odpowiedź na recenzję: Opcjonalnie poproś pracownika o sprawdzenie wygenerowanej odpowiedzi pod kątem dokładności i stosowności przed opublikowaniem.
Zapewniamy to poprzez NIE publikowanie odpowiedzi wygenerowanej przez GPT bezpośrednio jako odpowiedź Zendesk. Zamiast tego utworzymy funkcję aktualizacji nowych zgłoszeń za pomocą wewnętrznej notatki zawierającej wygenerowaną odpowiedź GPT.
Dodaj następującą funkcję do usługi kolby zendesk.py –
def update_ticket_with_internal_note( subdomain, ticket_id, username, password, comment_body
): url = f"https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}.json" email = username headers = {"Content-Type": "application/json"} comment_body = "Suggested Response - " + comment_body data = {"ticket": {"comment": {"body": comment_body, "public": False}}} response = requests.put(url, json=data, headers=headers, auth=(email, password))
- Wyślij do Zendeska: Użyj Zendesk API, aby opublikować wygenerowaną odpowiedź na odpowiednie zgłoszenie, zapewniając terminową komunikację z klientem.
Włączmy teraz wewnętrzną funkcję tworzenia notatek do naszego punktu końcowego API.
@app.route("/zendesk", methods=["POST"])
def zendesk(): updatedticketjson = request.get_json() zenembeddings = OpenAIEmbeddings() query = updatedticketjson["body"] zendb = FAISS.load_local("zendesk-index", zenembeddings) docs = zendb.similarity_search(query) zenchain = load_qa_chain(OpenAI(temperature=0.7), chain_type="stuff") answer = zenchain.run(input_documents=docs, question=query) update_ticket_with_internal_note(subdomain, ticket, username, password, answer) return answer
To kończy nasz przepływ pracy!
Zrewidujmy skonfigurowany przez nas przepływ pracy –
- Nasz wyzwalacz Zendesk rozpoczyna przepływ pracy w momencie pojawienia się nowego zgłoszenia Zendesk.
- Wyzwalacz wysyła dane nowego biletu do naszego webhooka.
- Nasz webhook wysyła żądanie do naszej usługi Flask.
- Nasza usługa Flask wysyła zapytania do magazynu wektorów utworzonego przy użyciu wcześniejszych danych Zendesk w celu pobrania odpowiednich wcześniejszych biletów i artykułów w celu udzielenia odpowiedzi na nowe zgłoszenie.
- Odpowiednie wcześniejsze zgłoszenia i artykuły są przekazywane do GPT wraz z danymi nowego zgłoszenia w celu wygenerowania odpowiedzi.
- Nowe zgłoszenie jest aktualizowane za pomocą wewnętrznej notatki zawierającej odpowiedź wygenerowaną przez GPT.
Możemy to przetestować ręcznie –
- Ręcznie tworzymy zgłoszenie na Zendesk, aby przetestować przepływ.
- W ciągu kilku sekund nasz bot udzieli trafnej odpowiedzi na zapytanie dotyczące biletu!
Jak wykonać cały ten przepływ pracy za pomocą Nanonets
Nanonets oferuje potężną platformę do płynnego wdrażania i zarządzania przepływami pracy opartymi na RAG. Oto, jak możesz wykorzystać Nanonets w tym przepływie pracy:
- Integracja z Zendeskiem: Połącz Nanonets z Zendeskiem, aby efektywnie monitorować i pobierać zgłoszenia.
- Buduj i trenuj modele: Użyj Nanonets do budowania i szkolenia LLM w celu generowania dokładnych i spójnych odpowiedzi w oparciu o bazę wiedzy i analizowany kontekst.
- Automatyzuj odpowiedzi: Skonfiguruj reguły automatyzacji w Nanonets, aby automatycznie publikować wygenerowane odpowiedzi w Zendesk lub przekazywać je agentom w celu sprawdzenia.
- Monitoruj i optymalizuj: Stale monitoruj wydajność przepływu pracy i optymalizuj modele i reguły, aby poprawić dokładność i wydajność.
Integrując LLM z przepływami pracy opartymi na RAG w GenAI i wykorzystując możliwości Nanonets, firmy mogą znacznie usprawnić swoje działania związane z obsługą klienta, zapewniając szybkie i dokładne odpowiedzi na zapytania klientów w Zendesk.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://nanonets.com/blog/build-your-own-zendesk-answer-bot-with-llms/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 06
- 08
- 1
- 2000
- 28
- 32
- 40
- 7
- a
- powyżej
- dostęp
- Konto
- precyzja
- dokładny
- działać
- Działania
- działania
- aktywny
- Dodaj
- dodatek
- adres
- przyczepność
- Admin
- Agent
- agentów
- AI
- Wszystkie kategorie
- wzdłuż
- również
- an
- analiza
- analizowane
- Analizując
- i
- odpowiedź
- każdy
- nigdzie
- api
- KLUCZE API
- Aplikacja
- pojawia się
- SĄ
- Szyk
- Przybywa
- artykuł
- towary
- AS
- aspekt
- At
- próba
- zwiększona
- Auth
- samochód
- automatycznie
- automatyzacja
- Automatyzacja
- Backend
- Bankowość
- sektor bankowy
- baza
- na podstawie
- podstawowy
- BE
- staje się
- być
- zanim
- poniżej
- korzystny
- Korzyści
- Blog
- ciało
- Bot
- przerwa
- budować
- Budowanie
- biznes
- biznes
- ale
- by
- wezwanie
- nazywa
- Połączenia
- Kampania
- Kampanie
- CAN
- możliwości
- walizka
- scentralizowane
- więzy
- Zmiany
- znaków
- chatbot
- nasze chatboty
- kod
- Kod źródłowy
- Kodowanie
- ZGODNY
- COM
- połączyć
- byliśmy spójni, od początku
- komentarz
- komentarze
- Komunikacja
- Ukończył
- składnik
- składniki
- Warunki
- Skontaktuj się
- zawierać
- zawiera
- zawartość
- kontekst
- kontynuować
- bez przerwy
- Odpowiedni
- mógłby
- Stwórz
- stworzony
- Tworzenie
- tworzenie
- Listy uwierzytelniające
- krytyczny
- istotny
- Aktualny
- Obecnie
- zwyczaj
- klient
- Zadowolenie klienta
- Obsługa klienta
- Obsługa klienta
- dane
- Baza danych
- Zależności
- wdrażanie
- życzenia
- Deweloper
- skierowany
- bezpośrednio
- do
- dokumentacja
- dokumenty
- pobieranie
- podczas
- każdy
- Efektywne
- efektywność
- wydajny
- skutecznie
- bądź
- element
- więcej
- osadzone
- zatrudniony
- Umożliwia
- Punkt końcowy
- zaręczynowy
- wzmacniać
- Poprawia
- zapewnić
- zapewnienie
- Cały
- Każdy
- przykład
- przykłady
- Z wyjątkiem
- Przede wszystkim system został opracowany
- Rozszerzać
- narażony
- zewnętrzny
- ułatwiać
- fałszywy
- w szybkim tempie
- Cecha
- Korzyści
- informacja zwrotna
- Pobrano
- pole
- filet
- i terminów, a
- pływ
- następujący
- W razie zamówieenia projektu
- Naprzód
- Częstotliwość
- od
- funkcjonować
- dalej
- Generować
- wygenerowane
- generujący
- generacja
- generatywny
- generatywna sztuczna inteligencja
- otrzymać
- gif
- dobry
- poprowadzi
- Prowadzenie
- Have
- mający
- headers
- pomoc
- historia
- gospodarz
- W jaki sposób
- http
- HTTPS
- człowiek
- ID
- if
- wdrożenia
- wykonawczych
- importować
- ważny
- podnieść
- poprawy
- in
- zawierać
- Włącznie z
- Przybywający
- włączać
- Zwiększenia
- wskaźnik
- zindeksowane
- przemysł
- Informacja
- informacyjny
- poinformowany
- wkład
- Zapytania
- zainstalować
- przykład
- zamiast
- instrukcje
- Integracja
- wzajemne oddziaływanie
- Interakcje
- wewnętrzny
- najnowszych
- Wprowadzenie
- IP
- IT
- json
- właśnie
- Klawisz
- Klawisze
- wiedza
- język
- duży
- firmy
- Dźwignia
- lewarowanie
- lubić
- LINK
- LLM
- miejscowy
- robić
- zarządzanie
- ręcznie
- rynek
- Trendy rynkowe
- Marketing
- materiał
- metoda
- modele
- Modyfikacje
- modyfikować
- monitor
- jeszcze
- większość
- ruch
- Nazwa
- niezbędny
- Potrzebować
- potrzebne
- wymagania
- Nowości
- nowy produkt
- notatnik
- już dziś
- tępy
- uzyskane
- of
- Oferty
- on
- pewnego razu
- te
- tylko
- OpenAI
- działanie
- operacje
- Optymalizacja
- or
- oryginalny
- OS
- Inne
- ludzkiej,
- koniec
- własny
- strona
- stron
- pandy
- część
- szczególnie
- minęło
- Hasło
- Przeszłość
- ścieżka
- wykonać
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- wykonywania
- wykonuje
- uprawnienia
- Personalizowany
- Platforma
- plato
- Analiza danych Platona
- PlatoDane
- punkt
- pozytywny
- Post
- potencjalnie
- powered
- mocny
- wygląda tak
- Produkt
- Informacje o produkcie
- projekt
- projektowanie
- zaproponować
- zapewniać
- zapewnia
- że
- publiczny
- ciągnięcie
- cele
- Python
- jakość
- zapytania
- pytanie
- Szybki
- Kurs
- ceny
- RE
- Prawdziwy świat
- niedawny
- Zalecana
- odwoływanie się
- odnosi
- odzwierciedlić
- regularnie
- obsługi produkcji rolnej, która zastąpiła
- odpowiadać
- składnica
- reprezentowanie
- zażądać
- wywołań
- wymagany
- odpowiedź
- Odpowiedzi
- odpowiedzialny
- retencja
- powrót
- przeglądu
- Recenzje
- zrewidować
- Trasa
- reguły
- run
- bieganie
- s
- sole
- klientów
- zapisywane
- rozkład
- scenariusz
- płynnie
- Szukaj
- sekund
- widzieć
- wysyła
- serwer
- usługa
- Sesja
- zestaw
- ustawienie
- w panelu ustawień
- przesunięcie
- pokazane
- znacznie
- Prosty
- skrawek
- Źródła
- specyficzny
- standardy
- rozpoczęty
- rozpocznie
- Rynek
- sklep
- przechowywania
- opływowy
- sznur
- strongly
- przedmiot
- subskrypcje
- taki
- odpowiedni
- wsparcie
- pewnie
- SWIFT
- system
- ukierunkowane
- Zadanie
- terminal
- REGULAMIN
- test
- Testowanie
- XNUMX
- że
- Połączenia
- ich
- Im
- następnie
- to
- Przez
- A zatem
- bilet
- bilety
- aktualny
- Tytuł
- do
- dzisiaj
- żeton
- w kierunku
- Pociąg
- transakcja
- Transformatory
- Trendy
- wyzwalać
- prawdziwy
- próbować
- Tutorial
- Aktualizacja
- zaktualizowane
- URL
- us
- posługiwać się
- Użytkownik
- za pomocą
- zazwyczaj
- wykorzystać
- v1
- wartość
- przez
- Vimeo
- Odwiedzić
- Droga..
- we
- tydzień
- jeśli chodzi o komunikację i motywację
- ilekroć
- który
- Podczas
- będzie
- w
- workflow
- przepływów pracy
- świat
- You
- Twój
- Zendesk
- zefirnet