Allgemeine Einführung
Curiosity ist ein Projekt zum Erforschen und Experimentieren, bei dem vor allem die LangGraph und FastHTML Technologie-Stacks, mit dem Ziel, eine Perplexität AI des Suchprodukts. Das Herzstück des Projekts ist eine einfache ReAct Curiosity unterstützt eine Vielzahl von großen Sprachmodellen (LLMs), darunter gpt-4o-mini von OpenAI, llama3-groq-8b-8192-tool-use-preview von Groq und das Ollama Das Projekt konzentriert sich nicht nur auf die technische Umsetzung, sondern verwendet auch viel Zeit auf das Front-End-Design, um ein hochwertiges visuelles und interaktives Erlebnis zu gewährleisten.
Funktionsliste
- Verwendung von LangGraph und dem FastHTML-Technologie-Stack
- Integrierte Tavily-Suche Verbesserte Texterstellung
- Unterstützung für mehrere LLMs, einschließlich gpt-4o-mini, llama3-groq und llama3.1
- Bietet flexible Back-End-Switching-Funktionen
- Das Frontend ist mit FastHTML aufgebaut und unterstützt WebSockets-Streaming.
Hilfe verwenden
Installationsschritte
- Klon-Lagerhaus:
git clone https://github.com/jank/curiosity
- Stellen Sie sicher, dass Sie den neuesten Python3-Interpreter haben.
- Richten Sie die virtuelle Umgebung ein und installieren Sie die Abhängigkeiten:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
- einrichten.
.env
und setzen Sie die folgenden Variablen:OPENAI_API_KEY=<your_openai_api_key> GROQ_API_KEY=<your_groq_api_key> TAVILY_API_KEY=<your_tavily_api_key> LANGCHAIN_TRACING_V2=true LANGCHAIN_ENDPOINT="https://api.smith.langchain.com" LANGSMITH_API_KEY=<your_langsmith_api_key> LANGCHAIN_PROJECT="Curiosity"
- Führen Sie das Projekt aus:
python curiosity.py
Leitlinien für die Verwendung
- Initiierung von Projekten: Lauf
python curiosity.py
Danach wird das Projekt auf dem lokalen Server gestartet und ausgeführt. - LLM wählenWählen Sie das geeignete LLM (z. B. gpt-4o-mini, llama3-groq oder llama3.1) entsprechend Ihren Bedürfnissen.
- Suche mit TavilyReAct Agent: Geben Sie eine Anfrage in einen Dialog ein und der ReAct Agent erweitert die Texterstellung um die Tavily-Suche.
- Front-End-InteraktionDas Frontend des Projekts wurde mit FastHTML erstellt und unterstützt WebSockets-Streaming, um Echtzeit-Reaktionen zu gewährleisten.
allgemeine Probleme
- Wie man den LLM wechselt: in
.env
Datei, um den entsprechenden API-Schlüssel zu konfigurieren und die gewünschte LLM beim Start des Projekts auszuwählen. - WebSockets-ProblemeWenn Sie Probleme mit dem Schließen von WebSockets ohne ersichtlichen Grund haben, sollten Sie Ihre Netzwerkverbindung und Ihre Serverkonfiguration überprüfen.