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'},
  	{'name': 'file created time', 'command': 'stat -f %SB %input_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. command is the output of a bash command. The command can reference the file path using the %input_file_path% variable.

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'
    },
    {
        'name': 'file created time', 
        'command': 'stat -f %SB %input_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.5.0.tar.gz (46.2 kB view details)

Uploaded Source

Built Distribution

lumei-0.5.0-py3-none-any.whl (36.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lumei-0.5.0.tar.gz
Algorithm Hash digest
SHA256 61e71def62eae1245c34599454aa4d99cf97c4680795c47e85c44e21288bbbdb
MD5 35cccbb092101731b2306804f9f50c3c
BLAKE2b-256 b942d47c700a308e94afaf8fbea3fe50f8ca80aa4c67e7aca12decbe69961424

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lumei-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 36.3 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d26f2260f429bf5221a8aa87c4c370d348961e94886a9b8997f43611088a6dc0
MD5 9ff72dc51c981c6d2adc6ead927b5050
BLAKE2b-256 66e04e4a78ac6a3d5117a7beffdf251886106c808cd74c79b9b03451a1373ff6

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