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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file cypher_ai_helper-0.1.5.tar.gz.

File metadata

  • Download URL: cypher_ai_helper-0.1.5.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Linux/5.15.0-1041-azure

File hashes

Hashes for cypher_ai_helper-0.1.5.tar.gz
Algorithm Hash digest
SHA256 8cbb99d0feaeb72fd3259ecb5887aed4246403e5f5c707ca7159e2abac8b3e25
MD5 8318e631d0138f532b401014ed163c52
BLAKE2b-256 6de76572cf58a08b6130f3298efe17c3e97ecb3fc151b989be9dc1374c8ff957

See more details on using hashes here.

File details

Details for the file cypher_ai_helper-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: cypher_ai_helper-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Linux/5.15.0-1041-azure

File hashes

Hashes for cypher_ai_helper-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a09885b86e0f8aaa1b11d85c5e4f03bfbe760c2e37ab765e82096e102c080cce
MD5 fd86dcb0240a26b16ca677f6c3e4f10b
BLAKE2b-256 b4969c43eae7a6b47ee90351bed7e8dcd5b42e39e2c8a0aab4d4a31e56301e16

See more details on using hashes here.

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