AI w praktyce

Jak stworzyłem własnego ChatGPT z pamięcią - analiza kodu i możliwości biznesowych

17 cze

Czy zastanawiałeś się kiedyś dlaczego większość chatbotów "zapomina" o czym rozmawialiście chwilę wcześniej? Postanowiłem rozwiązać ten problem i stworzyć własne narzędzie AI z prawdziwą pamięcią konwersacji. W 50 linijkach kodu Pythona zbudowałem chatbota, który nie tylko pamięta całą rozmowę, ale może być podstawą do stworzenia zaawansowanych narzędzi AI dla firm. Pokażę Ci dokładnie jak to działa i gdzie można to wykorzystać w praktyce.

Jak stworzyłem własnego ChatGPT z pamięcią - analiza kodu i możliwości biznesowych

Jak stworzyłem własnego ChatGPT z pamięcią – analiza kodu i możliwości biznesowych

Problem z większością chatbotów – dlaczego postanowiłem to zmienić

Pracując z różnymi narzędziami AI, zauważyłem frustrujący problem: większość chatbotów traktuje każde pytanie jako zupełnie nową konwersację. Pytasz o "ten projekt z poprzedniego tygodnia", a bot odpowiada: "O którym projekcie mówisz?".

Współczesne narzędzia, takie jak ChatGPT, radzą sobie z tym coraz lepiej, ale co jeśli chcesz zintegrować podobną funkcjonalność z własną aplikacją? Postanowiłem sprawdzić, jak trudno jest stworzyć narzędzie AI, które będzie pamiętać kontekst rozmowy.

Efekt? Działający chatbot z pamięcią... w zaledwie 50 linijkach kodu.

Architektura rozwiązania – prostota, która działa

Analizując najpopularniejsze rozwiązania AI, zauważyłem wspólny wzorzec: frontend + backend API + zarządzanie stanem. Zbudowałem więc własny system, bazując na tej logice, ale maksymalnie upraszczając całą architekturę.

Wybór technologii:

python

Kopiuj

Edytuj
import streamlit as st
from openai import OpenAI
from dotenv import dotenv_values

env = dotenv_values(".env")
openai_client = OpenAI(api_key=env["OPENAI_API_KEY"])
st.title("NaszGPT z pamięcią")
  • Streamlit – prostota i szybkość prototypowania. W data science liczy się szybkie testowanie konceptów, nie perfekcyjny UI.
  • OpenAI API – dostęp do zaawansowanego silnika językowego. W odróżnieniu od prostych chatbotów, tutaj potrzebna była prawdziwa „inteligencja”.
  • Python dotenv – bezpieczeństwo danych: klucze API nigdy nie powinny być zapisane na sztywno w kodzie.

Kluczowa innowacja – system pamięci konwersacji

Sercem rozwiązania jest funkcja zarządzająca pamięcią rozmowy:

python

Kopiuj

Edytuj
def get_chatbot_reply(user_prompt, memory):
    messages = [
        {
            "role": "system",
            "content": """
            Jesteś pomocnikiem, który odpowiada na wszystkie
            pytania użytkownika.
            Odpowiadaj na pytania w sposób zwięzły i zrozumiały.
            """
        },
    ]
    
    for message in memory:
        messages.append({
            "role": message["role"], 
            "content": message["content"]
        })
    
    messages.append({
        "role": "user", 
        "content": user_prompt
    })
    
    response = openai_client.chat.completions.create(
        model="gpt-4o",
        messages=messages
    )
    
    return {
        "role": "assistant",
        "content": response.choices[0].message.content,
    }

Kluczowy insight: OpenAI API nie ma wbudowanej pamięci – każdorazowo trzeba przesyłać pełną historię rozmowy, jeśli zależy nam na kontekście.

Dlaczego to działa lepiej?

Tradycyjny chatbot:

– "Jakie mamy plany marketingowe?"

– "Możesz doprecyzować?"

– "Te, o których rozmawialiśmy wcześniej."

– "Nie pamiętam."

Mój chatbot z pamięcią:

– "Jakie mamy plany marketingowe?"

– "Bazując na naszej wcześniejszej rozmowie..."

– "A co z budżetem?"

– "Wspomniałeś o 50 tys., przeanalizujmy to."

Zarządzanie stanem – pamięć, która przetrwa

python

Kopiuj

Edytuj
if "messages" not in st.session_state:
    st.session_state["messages"] = []

for message in st.session_state["messages"]:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

prompt = st.chat_input("O co chcesz spytać?")
if prompt:
    with st.chat_message("user"):
        st.markdown(prompt)
    
    st.session_state["messages"].append({
        "role": "user",
        "content": prompt
    })
    
    with st.chat_message("assistant"):
        chatbot_message = get_chatbot_reply(
            prompt,
            memory=st.session_state["messages"][-10:]
        )
        st.markdown(chatbot_message["content"])
    
    st.session_state["messages"].append(chatbot_message)

Dzięki session state, Streamlit przechowuje dane między interakcjami. W przeciwieństwie do większości chatbotów, moje rozwiązanie pamięta pełną sesję.

Optymalizacja pamięci – dlaczego akurat 10 wiadomości?

python

Kopiuj

Edytuj
memory = st.session_state["messages"][-10:]

Problem: Przesyłanie całej historii rozmowy może przekraczać limity tokenów i podnosić koszty.

Rozwiązanie: Przechowujemy tylko ostatnie 10 wiadomości – to wystarczy, by zachować kontekst i jednocześnie kontrolować zużycie zasobów.

Praktyczne zastosowania w biznesie

  • Customer Support z kontekstem:
  • „Widzę, że kontaktowałeś się w sprawie faktury 12345. Czy problem został rozwiązany?”
  • Asystent sprzedaży:
  • „Pamiętam, że interesowałeś się pakietem Enterprise. Czy chciałbyś umówić demo?”
  • Chatbot HR:
  • „Ostatnio pytałeś o urlop w marcu. Sprawdźmy status Twojego wniosku.”
  • Edukacyjny tutor:
  • „Uczyliśmy się ostatnio funkcji w Pythonie. Dziś przejdziemy do klas – pamiętasz zmienne?”

Czego nauczyłem się, budując to narzędzie?

  1. Zacznij prosto, iteruj szybko.
  • Prototyp 1: 20 linijek – bez pamięci
  • Prototyp 2: dodany session state
  • Prototyp 3: lepszy UI
  • Prototyp 4: optymalizacja kontekstu
  1. Doświadczenie użytkownika ma znaczenie.
  2. – Responsywność i przejrzystość ważniejsze niż czysta wydajność.
  3. Optymalizacja kontekstu to klucz.
  4. – Testowałem różne długości historii (5, 10, 20 wiadomości) – 10 to „sweet spot”.
  5. System prompt engineering robi różnicę.
  6. – Zmiana promptu wpływa na jakość odpowiedzi.
  • Standard: „Odpowiadaj na pytania”
  • Ulepszony: „Bądź pomocny, zwięzły i zrozumiały”
  • Biznesowy: „Dawaj praktyczne, eksperckie porady”

Analiza kosztów – realne liczby

  • Średni koszt wiadomości: ~0,01 USD
  • Użytkowanie miesięczne:
  • Lekki użytkownik (50 wiadomości): ~0,50 USD
  • Średni (200): ~2,00 USD
  • Intensywny (500): ~5,00 USD

Wniosek: Rozwiązanie opłacalne nawet dla małych firm.

Pierwsze opinie użytkowników

  • Freelancer graficzny: „W końcu chatbot, który pamięta moje preferencje!”
  • Właściciel firmy: „Idealne do obsługi klienta – koniec z tłumaczeniem od nowa.”
  • Manager HR: „Gdyby zintegrować to z systemem kadrowym – ogromna oszczędność czasu.”

Wspólny mianownik: każdy dostrzegł realną wartość płynącą z funkcji pamięci.

Porównanie z istniejącymi rozwiązaniami

  • ChatGPT (web):
  • Plusy: gotowe, silnik GPT-4o, łatwość użycia
  • Minusy: brak integracji z aplikacją, brak pełnej kontroli
  • No-code tools (Bubble, Zapier):
  • Plusy: szybki start
  • Minusy: ograniczona elastyczność, vendor lock-in, wysokie koszty
  • Moje rozwiązanie:
  • Pełna kontrola, elastyczność, niskie koszty
  • Wymaga odrobiny znajomości kodu – ale to inwestycja, nie przeszkoda

Co dalej? Plan rozwoju

W krótkim terminie (1–2 miesiące):

  • Lepsze zarządzanie pamięcią
  • Lepszy UX (wskaźniki pisania, znaczniki czasu)
  • Design mobilny

Średni termin (3–6 miesięcy):

  • Integracja z CRM (HubSpot, Pipedrive)
  • Możliwość przesyłania dokumentów i ich analizy
  • Własna baza wiedzy

Długi termin (6+ miesięcy):

  • Obsługa wielu użytkowników
  • Dashboard analityczny
  • Wersje branżowe (np. dla HR, sprzedaży, IT)

Dlaczego to ma znaczenie dla przyszłości AI?

Ten prosty chatbot pokazuje istotny trend: przechodzimy od narzędzi bez kontekstu do asystentów świadomych rozmowy.

Implikacje:

  • Personalizacja na skalę masową
  • Niższa bariera wejścia (50 linijek zamiast miesięcy developmentu)
  • Kluczowa rola integracji – samodzielne aplikacje AI powoli tracą znaczenie

Co dalej?

Masz firmę i zastanawiasz się, jak wdrożyć to u siebie? Następny tekst będzie właśnie o tym – pokażę konkretne case study, analizę ROI oraz gotowy plan działania. A jeśli nie chcesz czekać, po prostu odezwij się już teraz. Pierwsza konsultacja jest bezpłatna – porozmawiamy o Twoich wyzwaniach, sprawdzimy potencjał automatyzacji i wspólnie ocenimy, co można usprawnić. Działam praktycznie, konkretnie i z nastawieniem na rezultat – jeśli szukasz partnera do wdrożenia AI w Twoim biznesie, jesteś w dobrym miejscu.

Zwiększ wydajność swojej firmy ze mną!

Odkryj oparte na doświadczeniu, innowacyjne rozwiązania. Zoptymalizuj swój biznes wdrażając agenta AI - nie czekaj...
+48 729 113 619
Kontakt

Skontaktuj się ze mną