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.3.6.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: lumei-0.3.6.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.3.6.tar.gz
Algorithm Hash digest
SHA256 bf7bf633412cad65742fe9692346373511461b2dd1be9ee64617ad0cb88bc347
MD5 66936c2d92b03e97c3f1cdcb8de1b5e5
BLAKE2b-256 a3a67f8b0f4b02cf81eba6de6440b52fad23e8051a7a0c1721243e20090b5635

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lumei-0.3.6-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.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 60e629abaae594bec64c2596c1297f3d25715380b87e5e0cd9f518bf24e69c04
MD5 698ff6a95899c3169bd3b57c60a36246
BLAKE2b-256 8ef9c32edade897c0d54cd570090db2642016f2dc3b5af4dd134508136d9e09f

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