nifi/nifi-nar-bundles/nifi-py4j-bundle/nifi-python-extension-api
Mark Payne 5bcad9eef3
NIFI-12240 Added Python Processors for Docs, ChatGPT, Chroma, and Pinecone
Created new python processors for text embeddings, inserting into Chroma, querying Chroma, querying ChatGPT, inserting into and querying Pinecone. Fixed some bugs in the Python framework. Added Python extensions to assembly. Also added ability to load dependencies from a requirements.txt as that was important for making the different vectorstore implementations play more nicely together.

Excluded nifi-python-extensions-bundle from GitHub build because it requires Maven to use unpack-resources goal, which will not work in GitHub because it uses mvn compile instead of mvn install

- ParseDocument
- ChunkDocument
- PromptChatGPT
- PutChroma
- PutPinecone
- QueryChroma
- QueryPinecone

NIFI-12195 Added support for requirements.txt to define Python dependencies

This closes #7894

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-11-01 16:17:36 -05:00
..
src/main/python NIFI-12240 Added Python Processors for Docs, ChatGPT, Chroma, and Pinecone 2023-11-01 16:17:36 -05:00
README NIFI-11241 Initial implementation of Python-based Processor API with Py4J 2023-04-14 15:03:34 -05:00
pom.xml NIFI-12064 Upgraded Maven Plugin versions 2023-09-14 19:35:51 -05:00

README

To build the extension API Project:

First, update the version in the pyproject.toml file. After deploying to the pypi repository,
the version cannot be overwritten. So you will need to create a unique version.

Build the distribution artifacts:
```
cd ${nifi-python-extension-api-dir}/src/main/python
rm -rf dist/*
python3 -m build
```

This will create several files in the dist/ directory.
These can then be uploaded to the testpypi repository:

```
python3 -m twine upload --repository testpypi dist/*
```

You will be prompted for a username and password. For the username, use __token__. For the password, use the token value, including the pypi- prefix.