Skip to main content

File search tool using OpenAI assistant.

Project description

File search tools using OpenAI Assistant

Work in progress, still trying polish a few features and getting some initial feedback.

Installation (pip)

pip install lumei

Usage

Example

The following is an example of processing a list of pdf files and extracting the vendor and price data from the files. The command requires an OpenAI API key which can be obtained from here https://platform.openai.com/account/api-keys.

lumei \
  --input-files ~/folder_1/*.pdf,~/folder_2/*.pdf \
  --output-file ~/output.json \
  --openai-api-key=<OPENAI_API_KEY> \
  --query="[
  	{'name': 'vendor', 'search': 'Name of the vendor who issued the invoice.'}, 
  	{'name': 'price', 'search': 'Total bill from the invoice.'},
  	{'name': 'file path', 'attribute': 'FILE_PATH'}
  ]"

Input Parameters

--input-files

Source files to process on. Multiple files can be provided, and they are seperated by a comma "," character. File inputs can be expressed as a path to a single file or a regex.

--output-file

Path of the file that the results will be written to. Input must be a file path to a single file. Supported file formate are ".csv", ".xlsx", and ".json". Output file will only be written to when all results have been obtained.

--openai-api-key [Optional]

API key for OpenAI, necessary for file search functionalities. Key can be obtained from here https://platform.openai.com/account/api-keys.

Alternative way to provide the API key is to set it as the "OPENAI_API_KEY" environment variable.

--query

Name and the description of data to search for. Input should be an array of JSON objects. name is the name of the data to search for. Name of the data will be the column name for the result dataset. search is the description of the data to search for. attribute is a piece metadata related to the query, list of possible attributes can be found below.

Example:

[
    {
        'name': 'vendor', 
        'search': 'Name of the vendor who issued the invoice.'
    }, 
    {
        'name': 'price', 
        'search': 'Total bill from the invoice.'
    },
    {
        'name': 'file path', 
        'attribute': 'FILE_PATH'
    }
]
Possible Attributes

FILE_PATH, START_TIMESTAMP, END_TIMESTAMP, START_DATETIME, END_DATETIME

Standalone Methods

openai_file_search

Example of using the file search method directly without CLI.

from lumei import openai_file_search
from typing import Optional

results: Optional[dict[str, str]] = openai_file_search(
  openai_api_key="<OPENAI_API_KEY>",
  input_file_path="~/example_invoice_file.pdf",
  file_search_query={
    "vendor": "Name of the vendor who issued the invoice.",
    "price": "Total bill from the invoice.",
  }
)

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

lumei-0.4.0.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

lumei-0.4.0-py3-none-any.whl (36.1 kB view details)

Uploaded Python 3

File details

Details for the file lumei-0.4.0.tar.gz.

File metadata

  • Download URL: lumei-0.4.0.tar.gz
  • Upload date:
  • Size: 45.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for lumei-0.4.0.tar.gz
Algorithm Hash digest
SHA256 aef71855f87ec2ac818342c66e3f5d7fc1a02eb5f7ff7790ea6787c043b1a0af
MD5 64589844d0433ed1b4a6fd8eb17c002d
BLAKE2b-256 64377663f3212a65833e961303ca43524f9447f7dde704aa7bc835f5e7387a07

See more details on using hashes here.

File details

Details for the file lumei-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: lumei-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for lumei-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc93eebc2fe61b3a6bdeee424617fa7912119f4949a5778729047c97cc91cd8e
MD5 5582176d0832ce8f160755f417205f45
BLAKE2b-256 0106495ba5cb6907d3855cb340946053da0b76313e8049283c38f441131d4ea2

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