Skip to main content

A simple helper to create and execute Cypher queries for Neo4j

Project description

Cypher AI Helper

A helper library for creating Cypher queries with OpenAI API.

Installation

pip install cypher-ai-helper

Usage

Start a local neo4j database:

sh infra/start_neo4j.sh

or

docker run \
    --name neo4j \
    -p 27474:7474 -p 27687:7687 \
    -d \
    -e NEO4J_AUTH=neo4j/pleaseletmein \
    -e NEO4J_PLUGINS=\[\"apoc\"\]  \
    neo4j:latest

Then you can run the following:

Note: You need to set the OPENAI_API_KEY environment variable to your OpenAI API key.

import functools

from neo4j import GraphDatabase
from pydantic import BaseModel, Field

from cypher_ai_helper.main import cypher_query, execute_query
from cypher_ai_helper.utils import pydantic_models_to_str


class User(BaseModel):
    """
    A User class
    """
    id: int = Field(..., description="The id of the user")
    name: str = Field(..., description="The name of the user")
    email: str = Field(..., description="The email of the user")


class Post(BaseModel):
    """
    A Post class
    """
    id: int = Field(..., description="The id of the post")
    title: str = Field(..., description="The title of the post")
    body: str = Field(..., description="The body of the post")
    user_name: str = Field(..., description="The name of the user who created the post")


_q = cypher_query("del-all", pydantic_models_to_str([User, Post]),
                  "Delete all nodes and relations",
                  input_vars=[],
                  func=functools.partial(execute_query, driver=GraphDatabase.driver("bolt://localhost:27687",
                                                                                    auth=("neo4j",
                                                                                          "pleaseletmein")),
                                         database="neo4j"))

_q = cypher_query("new-user", pydantic_models_to_str([User, Post]),
                  "Create a new user and return the created user",
                  input_vars=["id", "name", "email"],
                  func=functools.partial(execute_query, driver=GraphDatabase.driver("bolt://localhost:27687",
                                                                                    auth=("neo4j",
                                                                                          "pleaseletmein")),
                                         database="neo4j", params={"id": 2, "name": "post_user", "email": "test"}))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cypher_ai_helper-0.1.5.tar.gz (6.7 kB view hashes)

Uploaded source

Built Distribution

cypher_ai_helper-0.1.5-py3-none-any.whl (8.1 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page