Ein fortschrittliches System zur Vorauswahl von Lebensläufen und zur Auswahl von Kandidaten mit Cohere aufbauen
In diesem Tutorial werde ich Sie durch den Prozess führen, ein fortschrittliches System zur Vorauswahl von Lebensläufen und zur Auswahl von Kandidaten mithilfe der Rerank- und Generate-Funktionen von Cohere zu entwickeln. Am Ende dieser Anleitung haben Sie ein voll funktionsfähiges Tool, das Ihnen im Rekrutierungsprozess hilft, unterstützt von der Leistung von Cohere.
Einführung in die fortschrittliche Lebenslauf-Vorauswahl mit Cohere
Willkommen auf der spannenden Reise, die Art und Weise zu transformieren, wie wir Lebensläufe vorselektieren und Kandidaten auswählen! Ich bin Sanchay Thalnerkar und ich werde Ihr Führer durch dieses umfassende Tutorial sein. Heute nutzen wir die Möglichkeiten von Cohere, einer Plattform, die leistungsstarke Modelle für die Verarbeitung natürlicher Sprache anbietet.
Was bauen wir?
Wir entwickeln ein hochmodernes System, das über das traditionelle Schlüsselwort-Matching zur Vorauswahl von Lebensläufen hinausgeht. Dieses Tool wird den Kontext, die Erfahrung und die in den Lebensläufen aufgeführten Fähigkeiten verstehen und sicherstellen, dass Sie die geeignetsten Kandidaten für Ihre Stellenangebote auswählen.
- Streamlit: Ein Framework zum einfachen Erstellen von Webanwendungen.
- Cohere: Eine Plattform, die Zugriff auf leistungsstarke Sprachmodelle bietet.
- Rerank: Um Lebensläufe genau basierend auf ihrer Relevanz zur Stellenbeschreibung zu bewerten.
- Generate: Um detaillierte Erklärungen für unsere Auswahl zu erstellen.
- Pinecone: Ein Dienst für effiziente Vektor-Suche.
- Pandas: Eine Bibliothek für Datenmanipulation und -analyse.
- OpenAI: Für zusätzliche Fähigkeiten zur Verarbeitung natürlicher Sprache.
Warum Cohere und nicht nur Vektor-suche?
Während die Vektor-Suche ein leistungsfähiges Tool zum Finden ähnlicher Dokumente ist, stößt sie manchmal an ihre Grenzen, wenn es darum geht, die Nuancen der menschlichen Sprache und des Kontexts zu verstehen. Cohere schließt diese Lücke, indem es erweiterte Funktionen bietet:
- Rerank: Es bietet ein tieferes Verständnis für Kontext und Relevanz, was zu genaueren Bewertungen der Lebensläufe führt.
- Generate: Es ermöglicht uns, detaillierte Erklärungen für unsere Entscheidungen zu erstellen, die ein Verständnis und eine Argumentation zeigen, die einem menschlichen Recruiter ähnlich ist.
Einführung in Cohere und Streamlit
Cohere ist eine Plattform, die Zugriff auf modernste Modelle zur Verarbeitung natürlicher Sprache (NLP) bietet. Sie ermöglicht Entwicklern, die Leistung großer Sprachmodelle für verschiedene Anwendungen zu nutzen, einschließlich Textgenerierung, Klassifikation und mehr. Die Modelle von Cohere verstehen den Kontext und die Semantik von Text, was genauere und bedeutungsvollere Interaktionen mit Textdaten ermöglicht.
In diesem Tutorial werden wir uns auf zwei spezifische Funktionen von Cohere konzentrieren:
- Rerank: Diese Funktion ermöglicht es uns, eine Liste von Elementen basierend auf ihrer Relevanz für eine bestimmte Anfrage neu zu bewerten. In unserem Fall werden wir sie verwenden, um Lebensläufe basierend auf deren Eignung für eine Stellenbeschreibung zu bewerten.
- Generate: Diese Funktion ermöglicht es uns, Text basierend auf einer Eingabe zu generieren. Wir werden sie verwenden, um Erklärungen dafür zu erstellen, warum ein bestimmter Lebenslauf hoch eingestuft wurde.
Streamlit ist eine Open-Source-Python-Bibliothek zum Erstellen von Webanwendungen mit minimalem Aufwand. Sie ist für Datenwissenschaftler und Ingenieure konzipiert, die datenbasierte Skripte in teilbare Web-Apps umwandeln möchten. Mit Streamlit können Sie interaktive Dashboards und Tools schnell erstellen, was es zu einer perfekten Wahl für unser Tool zur Vorauswahl von Lebensläufen macht.
Schritt 1: Einrichtung der Umgebung
Bevor wir in den Aufbau unseres Tools zur Vorauswahl von Lebensläufen und zur Auswahl von Kandidaten eintauchen, müssen wir unsere Entwicklungsumgebung vorbereiten. Folgen Sie diesen Schritten, um sicherzustellen, dass alles korrekt eingerichtet ist:
Python installieren:
Stellen Sie sicher, dass Python auf Ihrem System installiert ist. Andernfalls können Sie es von der offiziellen Python-Website herunterladen und installieren.
Virtuelle Umgebung erstellen (optional):
Es ist eine gute Praxis, eine virtuelle Umgebung zu erstellen, um Abhängigkeiten effizienter zu verwalten und potenzielle Konflikte zu vermeiden. Führen Sie die folgenden Befehle in Ihrem Terminal aus:
python -m venv myenv
source myenv/bin/activate
Benötigte Pakete installieren:
Installieren Sie nun die erforderlichen Python-Pakete mit pip. Die für dieses Projekt benötigten Pakete sind streamlit, pandas, cohere, openai und pinecone. Führen Sie den folgenden Befehl aus, um alle erforderlichen Pakete zu installieren:
pip install streamlit pandas cohere pinecone openai
Zusätzliche Abhängigkeiten installieren:
Je nach Ihrem System und den Spezifika Ihres Projekts müssen Sie möglicherweise zusätzliche Abhängigkeiten installieren. Konsultieren Sie die Dokumentation zu jedem Paket für Anleitungen.
Jetzt, da unsere Umgebung bereit ist, können wir mit dem Programmieren beginnen und unsere Anwendung erstellen!
Schritt 2: API-Schlüssel beschaffen und die Umgebungsdatei einrichten
Um unsere API-Schlüssel sicher zu speichern, erstellen wir eine Umgebungsdatei mit dem Namen .env. Diese Datei wird verschiedene Konfigurationen, einschließlich der benötigten API-Schlüssel für den Zugriff auf Cohere, Pinecone und OpenAI, speichern.
2.1 Cohere API-Schlüssel
- Besuchen Sie das Cohere Developer Portal und melden Sie sich für ein Konto an.
- Sobald Sie sich angemeldet haben, navigieren Sie zum Abschnitt API-Schlüssel.
- Erstellen Sie einen neuen API-Schlüssel.
- Kopieren Sie den API-Schlüssel sicher, da er nicht erneut angezeigt wird.
2.2 Pinecone API-Schlüssel:
- Gehen Sie zur Pinecone-Website und erstellen Sie ein Konto oder melden Sie sich an.
- Nach der Anmeldung gehen Sie zu Ihrem Dashboard und erstellen Sie einen neuen API-Schlüssel.
- Kopieren Sie den API-Schlüssel und bewahren Sie ihn sicher auf.
2.3 OpenAI API-Schlüssel:
- Besuchen Sie die OpenAI-Website und melden Sie sich für ein Konto an oder loggen Sie sich ein.
- Navigieren Sie zum Abschnitt API-Schlüssel in Ihren Kontoeinstellungen und generieren Sie einen neuen API-Schlüssel.
- Kopieren Sie den generierten API-Schlüssel sicher.
2.4 Erstellen der .env Datei:
Jetzt, wo Sie die API-Schlüssel erhalten haben, lassen Sie uns eine .env Datei im Hauptverzeichnis Ihres Projekts erstellen:
YOUR_PINECONE_API_KEY: Ihr Pinecone-API-Schlüssel
YOUR_PINECONE_ENVIRONMENT: Ihre Pinecone-Umgebung (z. B. 'us-west1-gcp')
YOUR_COHERE_API_KEY: Ihr Cohere-API-Schlüssel
YOUR_OPENAI_API_KEY: Ihr OpenAI-API-Schlüssel
Speichern Sie die .env-Datei, nachdem Sie die Details eingegeben haben. Wichtig: Halten Sie Ihre API-Schlüssel vertraulich. Teilen Sie niemals Ihre .env-Datei oder geben Sie Ihre API-Schlüssel in Ihrem Code oder öffentlichen Repositories preis.
Schritt 3: Aufbau der Projektstruktur
Jetzt, da unsere Umgebung bereit ist und wir unsere API-Schlüssel gesichert haben, ist es an der Zeit, die Projektstruktur einzurichten. Eine saubere und organisierte Verzeichnisstruktur ist entscheidend für die Wartbarkeit und Skalierbarkeit Ihres Projekts.
3.1 Verzeichnisstruktur
Unser Projekt wird aus den folgenden Dateien bestehen:
- main.py: Dies ist die Hauptdatei, die die Streamlit-App ausführt.
- helpers.py: Diese Datei enthält Hilfsfunktionen und die Kernlogik unserer Anwendung.
- .env: Diese Datei speichert unsere Umgebungsvariablen, einschließlich der API-Schlüssel.
3.2 Warum zwei Python-Dateien?
Sie fragen sich vielleicht, warum wir unseren Code in zwei Dateien aufteilen müssen. Hier sind einige wichtige Gründe:
- Modularität: Indem wir die Kernlogik und Hilfsfunktionen in einer separaten Datei halten, machen wir unseren Code modularer.
- Wartbarkeit: Änderungen können in helpers.py vorgenommen werden, ohne den UI-Code in main.py zu beeinflussen.
- Lesbarkeit: Die klare Trennung zwischen UI-Code und Logik erleichtert das Verständnis des Codebase.
- Skalierbarkeit: Eine modulare Struktur erleichtert es, Funktionen hinzuzufügen, während die Anwendung wächst.
Schritt 4: Unsere helpers.py Datei
In dieser helpers.py Datei haben wir eine Sammlung von Funktionen, die verschiedenen Zwecken dienen, einschließlich der Initialisierung von Verbindungen, der Datengenerierung und der Durchführung von Operationen im Zusammenhang mit der Suche und Bewertung von Dokumenten. Dieser modulare Ansatz macht unseren Code sauberer, einfacher zu verstehen und wartbar.
4.1 Bibliotheken importieren und Initialisierung
Hier beginnen wir mit dem Import der notwendigen Bibliotheken, von denen unsere Hilfsfunktionen abhängen. Wir verwenden Faker, um gefälschte Daten zu generieren, was unglaublich nützlich ist, um reale Daten zu simulieren, ohne tatsächliche persönliche Informationen zu verwenden.
4.2 Initialisierung von Pinecone
Diese Funktion richtet unsere Verbindung zu Pinecone ein und stellt sicher, dass unser Pinecone-Index bereit ist, um Daten einzufügen und abzufragen.
4.3 Generieren eines synthetischen Lebenslaufs
Diese Funktion generiert einen synthetischen Lebenslauf, dessen verschiedene Felder mit zufälligen, aber plausiblen Daten gefüllt sind, was für das Testen unserer Anwendung entscheidend ist.
4.4 Erstellen eines Datensatzes
Diese Funktion generiert einen Datensatz synthetischer Lebensläufe, um ein reales Szenario zu simulieren, in dem Sie eine Sammlung von Lebensläufen zur Verfügung haben.
4.5 Dokumente einbetten
Diese Funktion konvertiert unsere Textdaten in numerische Vektoren, die in verschiedenen Modellen des maschinellen Lernens zur Verarbeitung eingespeist werden.
4.6 Daten zu Pinecone einfügen
Diese Funktion fügt unseren Datensatz in den Pinecone-Index ein und sorgt dafür, dass unser Index mit den notwendigen Daten gefüllt ist, um Abfragen durchzuführen.
4.7 Dokumente von Pinecone abrufen
In dieser Funktion fragen wir den Pinecone-Index ab, um die Dokumente abzurufen, die am relevantesten für eine gegebene Anfrage sind.
4.8 Vergleichen von Such- und Rerank-Ergebnissen
Diese Funktion vergleicht die Ergebnisse einer Vektor-Suche in Pinecone mit den Ergebnissen nach Anwendung der Reranking-Funktion von Cohere und liefert wertvolle Einblicke in Verbesserungen der Bewertung.
4.9 Lebensläufe bewerten
Diese Funktion bewertet Lebensläufe basierend auf einer gegebenen Stellenanfrage und verwendet die Sprachmodelle von Cohere, um den Bewertungsprozess zu automatisieren.
Schritt 5: Unser main.py
Dieser Abschnitt konzentriert sich auf den Hauptanwendungsfluss, Benutzereingaben und die Verbindung verschiedener APIs zur Verarbeitung von Anfragen.
Schritt 6: Ausführen Ihrer Streamlit-Anwendung
6.1 Einrichten der API-Schlüssel
Bevor die Anwendung nach Lebensläufen suchen und diese neu bewerten kann, geben Sie Ihre jeweiligen API-Schlüssel in die vorgesehenen Felder im linken Panel ein.
6.2 Eine Anfrage stellen
Geben Sie Ihre Suchanfrage ein und geben Sie an, wie viele Lebensläufe Sie abrufen und neu bewerten möchten. Drücken Sie die Suche-Schaltfläche, um Ihre Anfrage auszuführen.
6.3 Fehlerbehebung
Wenn Sie einen "ForbiddenException"-Fehler sehen, könnte dies an nicht übereinstimmenden API-Schlüsseln oder an der Überschreitung der zulässigen Anzahl von Anfragen liegen. Versuchen Sie einfach erneut, indem Sie erneut auf "Suche" klicken.
6.4 Ergebnisse anzeigen:
Nach der Ausführung einer Suche präsentiert die Anwendung eine verfeinerte Liste potenzieller Kandidaten. Diese Liste zeigt sowohl die ursprünglichen als auch die neu bewerteten Ergebnisse basierend auf ihrer Relevanz für Ihre Anfrage.
Der Vergleich dieser Listen ermöglicht eine bessere Entscheidungsfindung.
Sehen Sie das funktionierende Prototyp! Sie haben erfolgreich die Einrichtung und Ausführung Ihrer Streamlit-Anwendung durchlaufen. Vielen Dank, dass Sie dieses Tutorial verfolgt haben. Ich hoffe, Sie fanden es informativ und hilfreich. Viel Spaß beim Programmieren!
Hinterlasse einen Kommentar
Alle Kommentare werden vor der Veröffentlichung geprüft.
Diese Website ist durch hCaptcha geschützt und es gelten die allgemeinen Geschäftsbedingungen und Datenschutzbestimmungen von hCaptcha.