Tworzenie bloków Gutenberg z użyciem ChatGPT.

Zobacz kurs

Podstawy AWS.

Automatyzacja procesów z Make.com

Najlepsze wtyczki do sprzedaży biletów na WordPressie

Najlepsze wtyczki do sprzedaży biletów na WordPressie

Odkryj Interactivity API w WordPressie

Odkryj Interactivity API w WordPressie

Optymalizacja TTFB: Klucz do szybszej i bardziej responsywnej strony internetowej

Optymalizacja TTFB: Klucz do szybszej i bardziej responsywnej strony internetowej

Najczęściej popełniane błędy przez programistów React i jak ich unikać

Najczęściej popełniane błędy przez programistów React i jak ich unikać

WordPress i Block Protocol: Nowa przyszłość dla twórców i deweloperów

WordPress i Block Protocol: Nowa przyszłość dla twórców i deweloperów

Zobacz więcej
Jak wykonać transkrypcję wideo przy użyciu modelu Whisper od OpenAI

Jak wykonać transkrypcję wideo przy użyciu modelu Whisper od OpenAI

Superinteligencja: Czy prawda jest bardziej brutalna, niż się spodziewamy?

Superinteligencja: Czy prawda jest bardziej brutalna, niż się spodziewamy?

Jak wyprzedzić konkurencję dzięki EU AI Act – Przewodnik dla firm

Jak wyprzedzić konkurencję dzięki EU AI Act – Przewodnik dla firm

Nowe horyzonty sztucznej inteligencji z modelami Claude 3.5 od Anthropic

Nowe horyzonty sztucznej inteligencji z modelami Claude 3.5 od Anthropic

Kotaemon – Test narzędzia open-source RAG do budowania i eksploracji własnej bazy wiedzy

Kotaemon – Test narzędzia open-source RAG do budowania i eksploracji własnej bazy wiedzy

Zobacz więcej

PromptLayer – czyli zaglądamy w komunikację między LangChain z modelem językowym

Awatar Mike Tomala

W poprzednich artykułach Wprowadzenie do frameworka LangChain oraz Budujemy aplikację do zadawania pytań do PDFów w LangChain i ChatGPT pokazywaliśmy przykłady jak przy pomocy frameworka LangChain zadawać pytania do modelu językowego. Wykorzystywaliśmy przede wszystkim model GPT od OpenAI. Wprowadzaliśmy różne zapytania i komendy do LangChain. Wiemy, że LangChain komunikował się z API Open AI, ale nie wiemy, jakie prompty były wysyłane. Aby podpatrzeć komunikację między LangChain a modelem językowym możemy wykorzystać narzędzie PromptLayer. Zobaczmy, jak przygotować integracje.

Zakładamy konto w PromptLayer

Konto w systemie PromptLayer możemy założyć na stronie: https://promptlayer.com. Do wyboru mamy kilka pakietów, ale co najważniejsze, jest też pakiet darmowy, który pozwoli nam na przetestowanie narzędzia.

Po założeniu konta i zalogowaniu mamy dostęp do panelu PromptLayer.

Po zalogowaniu musimy utworzyć API Key, klikając duży przycisk: „Create new API Key”. Pamiętaj, aby zapisać klucz i nie udostępniać go nikomu.

Konfigurujemy aplikację

W pierwszym roku musimy zainstalować pakiet:

pip install promptlayer

Wykonajmy kod, który stworzyliśmy we wpisie: Budujemy aplikację do zadawania pytań do PDFów w LangChain i ChatGPT.

from langchain.chains import RetrievalQA
from langchain.llms import PromptLayerOpenAI
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma

from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("2305.10973.pdf") # Podmień na ścieżkę do swojego pliku PDF

llm = PromptLayerOpenAI(pl_tags=["langchain-requests", "chatbot"])

text_splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100) # Aby nie przekroczyć liczby tokenów ChatGPT zmniajszamy domyślny chunk_size
pages = loader.load_and_split(text_splitter=text_splitter)

embeddings = OpenAIEmbeddings()
db = Chroma.from_documents(pages, embeddings)

retriever = db.as_retriever()
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever)

query = "Na czym polega metoda nowego podejścia śledzenia punktu?"
print('result:', qa.run(query))

Pamiętajcie, aby najpierw zdefiniować klucze API jako zmienne środowiskowe, na przykład:

import os

os.environ["OPENAI_API_KEY"] = "..."
os.environ["PROMPTLAYER_API_KEY"] = "..."

Po uruchomieniu powyższego kodu, w panelu PromptLayer otrzymamy logi requestów jakie zostały wysłane do OpenAI.

Dla powyższego przykładu wysłany został jeden request do modelu text-davinci-003, który kosztował $0.01982, trwał 22 sekundy i wykorzystał 991 tokenów.

Tagowanie

Tagowanie to bardzo przydatna funkcjonalność, która pozwala przypisać tagi do zapytań. W przykładzie powyżej użyliśmy 2 tagów: langchain-requests i chatbot. Wyszukiwarka dostępna w panelu PromptLayer pozwala łatwo filtrować logi według tagów.

Prompt Engineering

Dzięki PromptLayer możemy podpatrzeć, jak komponowane są prompty za pomocą LangChain. Dla naszego przykładu możemy zobaczyć wykorzystany szablon:

Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.

...
Kontekst, na podstawie którego ma zostać przygotowana odpowiedź
...

Question: Na czym polega metoda nowego podejścia śledzenia punktu?
Helpful Answer: