Ce projet est conçu pour implémenter un agent capable d'interagir avec une base de données de graphiques comme Neo4j via une couche sémantique à l'aide d'appels de fonction OpenAI. La couche sémantique équipe l'agent d'une suite d'outils robustes, ce qui lui permet d'interagir avec la base de données de graphiques en fonction de l'intention de l'utilisateur. En savoir plus dans le billet de blog.
Pour démarrer le projet, exécutez la commande suivante:
docker-compose up
Ouvrez http://localhost:8501 dans votre navigateur pour interagir avec l'agent.
L'agent utilise plusieurs outils pour interagir efficacement avec la base de données de graphiques NEO4J:
Vous devez définir les variables d'environnement suivantes dans le fichier .env .
OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
NEO4J_URI=<YOUR_NEO4J_URI>
NEO4J_USERNAME=<YOUR_NEO4J_USERNAME>
NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD>
Ce projet contient les services suivants enveloppés en tant que conteneurs Docker
neo4j-semantic-layer de Langchain pour implémenter les capacités d'appel OpenAI LLM et de fonction.localhost:8501 . Si vous souhaitez remplir la base de données avec un exemple de jeu de données de film, vous pouvez exécuter ingest.py . Le script importe des informations sur les films et leur notation par les utilisateurs. Pour fonctionner dans le conteneur Docker API (recommandé), faites ce qui suit:
# access container shell
docker exec -it < container id for llm-movieagent-api > bash
# run script
python ingest.py De plus, le script crée deux indices de texte complet, qui sont utilisés pour cartographier les informations de l'entrée de l'utilisateur à la base de données. L'ensemble de données est basé sur l'ensemble de données Moviens, qui est également disponible en tant que projet Recommendation dans NEO4J Sandbox.
Les contributions sont les bienvenues!