Flask extension for Weaviate
Project description
Flask-Weaviate
Flask-Weaviate is a Flask extension for integrating Weaviate into Flask applications. It provides a convenient way to manage a Weaviate client connection, supporting configuration through Flask app settings and environment variables.
Installation
Install Flask-Weaviate using pip:
pip install flask-weaviate
Usage
Initialize the extension in your Flask app:
from flask import Flask
from flask_weaviate import FlaskWeaviate
app = Flask(__name__)
weaviate = FlaskWeaviate(app)
Access the Weaviate client within your Flask app:
weaviate_client = weaviate.client
# Now you can use weaviate_client to interact with Weaviate
Automatically disconnects the Weaviate client during app context teardown.
Flask app factory:
from flask import Flask, jsonify
from flask_weaviate import FlaskWeaviate
weaviate = FlaskWeaviate()
def create_app():
app = Flask(__name__)
weaviate.init_app(app)
@app.route('/')
def index():
# Access the Weaviate client
client = weaviate.client
# Now you can use client to interact with Weaviate
# ...
return jsonify({'message': 'Hello, Weaviate!'})
# Your other app configurations and extensions
return app
if __name__ == '__main__':
create_app().run()
Configuration
The following configuration parameters can be set in the Flask app's configuration or as environment variables:
WEAVIATE_HTTP_HOST
: Weaviate server HTTP host.WEAVIATE_HTTP_PORT
: Weaviate server HTTP port.WEAVIATE_HTTP_SECURE
: Use HTTP secure connection to the Weaviate server (True/False).WEAVIATE_GRPC_HOST
: Weaviate server gRPC host.WEAVIATE_GRPC_PORT
: Weaviate server gRPC port.WEAVIATE_GRPC_SECURE
: Use gRPC secure connection to the Weaviate server (True/False).WEAVIATE_API_KEY
: API key for authentication with Weaviate.WEAVIATE_USERNAME
: Username for authentication (used with password).WEAVIATE_PASSWORD
: Password for authentication (used with username).WEAVIATE_ACCESS_TOKEN
: Access token for authentication with Weaviate.WEAVIATE_CONNECTION_PARAMS
: Weaviate client connection parameters.WEAVIATE_EMBEDDED_OPTIONS
: Options for embedded Weaviate.WEAVIATE_AUTH_CLIENT_SECRET
: Auth client secret for Weaviate.WEAVIATE_ADDITIONAL_HEADERS
: Additional headers for Weaviate requests.WEAVIATE_ADDITIONAL_CONFIG
: Additional configuration for Weaviate.WEAVIATE_SKIP_INIT_CHECKS
: Skip Weaviate client initialization checks.
Connection
When any of http_host
http_port
http_secure
grpc_host
grpc_port
grpc_secure
is set,
the connection is created with these values as connection params
Else if connection_params
are given, they are used to connect
Else Weaviate is stared in Embedded mode standard (either with delivered embedded_options
or defaults)
Authentication
Authentication is determined from sequence: api_key
, username + password
, access_token
.
If the first in sequence is detected the others are skipped.
Example
from flask import Flask, jsonify
from flask_weaviate import FlaskWeaviate
app = Flask(__name__)
weaviate = FlaskWeaviate(
app,
http_host="weaviate-server",
http_port=80,
http_secure=False,
api_key="your-api-key",
skip_init_checks=True
)
@app.route('/')
def index():
# Access the Weaviate client
weaviate_client = weaviate.client
# Now you can use weaviate_client to interact with Weaviate
# ...
return jsonify({'message': 'Hello, Weaviate!'})
if __name__ == '__main__':
app.run()
Teardown Function
Flask-Weaviate includes a teardown function to automatically disconnect the Weaviate client during app context teardown. This ensures proper cleanup of resources.
License
This project is licensed under the MIT License - see the LICENSE file for details.
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
Built Distribution
Hashes for flask_weaviate-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de53f3d2e5d6999ca9ad6d4f442242c32f9f7f520e5ae05a147a7b05b4becdb8 |
|
MD5 | 48df3bd4ad954f899eed7e32df9b3721 |
|
BLAKE2b-256 | 53018424ecb7892915c44b1f3a192a5fb22e7c182d214ceb982bbcb63009f957 |