No project description provided
Project description
nl2query
Convert natural language text inputs to Pandas, MongoDB, Kusto, and Cypher(Neo4j) queries. The models used are fine-tuned versions of CodeT5+ 220m models.
[![PyPI version][pypi-image]][pypi-url] [![Build status][build-image]][build-url] [![Code coverage][coverage-image]][coverage-url] [![GitHub stars][stars-image]][stars-url] [![Support Python versions][versions-image]][versions-url]
Getting started
You can get nl2query
from PyPI, using
python -m pip install nl2query
Example usage
1. Pandas Query
Suppose you want to convert the textual question to pandas query, follow the code below
from nl2query import PandasQuery
titanic = pd.read_csv('/path/titanic.csv')
queryfier = PandasQuery(titanic, 'titanic')
queryfier.generate_query('''list all people who paid more fare than the fare paid by 'Braund, Mr. Owen Harris' ''')
queryfier.generate_query('''find the names of passengers with age greater than 35 and containing Heath in their name''')
queryfier.generate_query('''which cabinet has average age less than 21?''') #Groupby Query
2. MongoDB Query
Suppose you want to convert the textual question to Mongo query, follow the code below
from nl2query import MongoQuery
import pymongo # import if performing analysis using python client
keys = ['_id', 'index', 'passengerid', 'survived', 'Pclass', 'name', 'sex', 'age', 'sibsp', 'parch', 'ticket', 'fare', 'cabin', 'embarked'] #keys present in the collection to be queries.
queryfier = MongoQuery(keys, 'titanic')
queryfier.generate_query('''which pclass has the minimum average fare?''')
keys = ['_id', 'index', 'total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size']
queryfier = MongoQuery(keys, 'tips')
queryfier.generate_query('''find the day on which combined sales was highest''')
In the above code the keys can be found by running the following piece db.tips.find_one({}).keys()
3. Kusto Query
Suppose you want to convert the textual question to Kusto query, follow the code below
from nl2query import KustoQuery
cols = ['vendor_id', 'pickup_datetime', 'dropoff_datetime', 'passenger_count', 'trip_distance', 'pickup_longitude', 'pickup_latitude', 'rate_code', 'store_and_fwd_flag', 'dropoff_longitude', 'dropoff_latitude', 'payment_type', 'fare_amount', 'surcharge', 'mta_tax', 'Tip_amount', 'tolls_amount', 'total_amount']
queryfier = KustoQuery(cols, 'nyc_taxi')
queryfier.generate_query('''find the vendor ids for all the tips that are greater than the average tip''')
4. Cypher(Neo4j) Query
Suppose you want to convert the textual question to Cypher query, follow the code below
from nl2query import CypherQuery
node_labels = {'User': ['display_name', 'uuid'], 'Comment': ['score', 'link', 'uuid']}
relationships = ['COMMENTED']
queryfier = CypherQuery(node_labels, relationships)
queryfier.generate_query('list the links of all the comments done by "jose_bacoy"')
node_labels = {'Case': ['gender', 'reportdate', 'ageunit', 'reporteroccupation', 'primaryid', 'age', 'eventDate'], 'Outcome': ['code', 'outcome']}
relationships = ['RESULTED_IN']
queryfier = CypherQuery(node_labels, relationships)
queryfier.generate_query('find the outcomes of people who are female and below the age of 32')
node_labels = {'Person': ['id', 'name', 'dob']}
relationships = []
queryfier = CypherQuery(node_labels, relationships)
res = queryfier.generate_query('find the dob of people who have "Andreia" in their name')
Changelog
Refer to the CHANGELOG.md file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nl2query-0.1.2.tar.gz
.
File metadata
- Download URL: nl2query-0.1.2.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.8.10 Linux/5.10.102.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d76aed94d0470afd4fa1e6260a9fce1d73bf385159c417e7f16489eb70fa9e1 |
|
MD5 | fff26196b82c54a28012e80a7b61efa9 |
|
BLAKE2b-256 | b7fdecc28aecc2d9777653713b171354dbead184dd3ba2a13ad5b3adb539dd66 |
Provenance
File details
Details for the file nl2query-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: nl2query-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.8.10 Linux/5.10.102.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de27d01b8182a86f1871dfca6a2c45c6cae56b0d48f2156c1410d6bfeb71a249 |
|
MD5 | cae5dd3d42a7d4cf3968b38796736690 |
|
BLAKE2b-256 | 47fbdf7c00336389c2e9bc50950779ec26c15583c094770bacc3de3d3de1a4ef |