Skip to main content

Official Clean Talk client for Python applications.

Project description

Clean Talk Python Client for Kolas.Ai Public API

Welcome to the Kolas.Ai Public API documentation! This repository hosts the Python client for Kolas.Ai's Clean Talk public API, making it easy for developers to integrate Kolas.Ai’s machine learning services into your applications.

Overview

Clean Talk API is designed to classify message categories based on a trained dataset within a configured project. Use this API to accurately categorize messages into types like "Neutral", "Insult", "Spam" , etc. We support different languages, including English, Russian, Ukrainian, and we can add any languages by request (message to info@kolas.ai).

Key Features

  • Predict Message Categories: Use the /predictions/predict endpoint to sync classify messages based on your project-specific datasets and /predictions/asyncPredict endpoint to async classify messages.
  • High Accuracy: Predictions include probability scores, giving you confidence in the classification results.
  • OAuth2 Authentication: Secure access via OAuth2 client credentials flow.

Usage

The Kolas.Ai API follows the OpenAPI 3.1 standard. To get started:

  1. Create a new account on the Kolas.Ai platform.
  2. Create a new project Clean Talk and configure your datasets.
  3. Authentication: Obtain an access token using OAuth2 client credentials.
  4. Make Predictions: Send a POST request to /predictions/predict (or /predictions/asyncPredict) with your projectId and messages.
  5. Receive Predictions: Retrieve predicted categories and their probabilities in the API response.

Installation

You can install the CleanTalk Python client via pip. Run the following command:

pip install clean-talk-client

Authentication

This API uses OAuth2 client credentials for secure access. You’ll need to request a token using your client credentials from the Kolas.Ai platform.

from clean_talk_client.kolas_ai_oauth_client import KolasAiOAuthClient

YOUR_CLIENT_ID = ''  # Set your client ID
YOUR_CLIENT_SECRET = ''  # Set your client secret

oauth_client = KolasAiOAuthClient()
auth_result = oauth_client.auth(YOUR_CLIENT_ID, YOUR_CLIENT_SECRET)

$authResult contains the access token and expires_in information, which you will use to authenticate your API requests. You need to update token after its expiration.

Example for Sync Request

Once you have your access token, you can make a request like this:

from clean_talk_client.clean_talk_prediction_client import CleanTalkPredictionClient
from clean_talk_client.message import Message
from clean_talk_client.predict_request import PredictRequest

YOUR_PROJECT_ID = '11'  # Set your project ID

client = CleanTalkPredictionClient(auth_result.access_token)
request = PredictRequest(
    YOUR_PROJECT_ID,
    [
        Message('11177c92-1266-4817-ace5-cda430481111', 'Hello world!'),
        Message('22277c92-1266-4817-ace5-cda430482222', 'Good buy world!'),
    ]
)
# Sync request to kolas.ai. It returns result of predictions immediately
response = client.predict(request)
for prediction in response.get_predictions():
    print("MessageId:", prediction.message_id)
    print("Message:", prediction.message)
    print("Prediction:", prediction.prediction)
    print("Probability:", prediction.probability)
    print("Categories:", ", ".join(prediction.categories))

Example Response

MessageId: 11177c92-1266-4817-ace5-cda430481111
Message: Hello world!
Prediction: Neutral
Probability: 0.9036153107882
Categories: Insult, Neutral, Spam

MessageId: 22277c92-1266-4817-ace5-cda430482222
Message: Good buy world!
Prediction: Neutral
Probability: 0.99374455213547
Categories: Insult, Neutral, Spam

Example for Async Request

Once you have your access token, you can make a request like this:

from clean_talk_client.clean_talk_prediction_client import CleanTalkPredictionClient
from clean_talk_client.message import Message
from clean_talk_client.predict_request import PredictRequest

YOUR_PROJECT_ID = '11'  # Set your project ID

client = CleanTalkPredictionClient(auth_result.access_token)
request = PredictRequest(
    YOUR_PROJECT_ID,
    [
        Message('11177c92-1266-4817-ace5-cda430481111', 'Hello world!'),
        Message('22277c92-1266-4817-ace5-cda430482222', 'Good buy world!'),
    ]
)

# Async request to kolas.ai. Results of predictions will be sent on registered webhook
client.async_predict(request)

Responses will be sent to the configured webhook URL in your project settings.

Documentation Links

License

This API specification is released under the Apache 2.0 License. See the LICENSE for more details.

__

Feel free to explore, test, and integrate Kolas.Ai's API, and reach out with any questions!

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

clean_talk_client-1.0.2.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clean_talk_client-1.0.2-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file clean_talk_client-1.0.2.tar.gz.

File metadata

  • Download URL: clean_talk_client-1.0.2.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for clean_talk_client-1.0.2.tar.gz
Algorithm Hash digest
SHA256 4c3839e966fc95a7fe9bdf21f71a400c540350de666a553fdaa4c32ba3ff6523
MD5 e4f7fbb4dc20386d34f88c9a904e3076
BLAKE2b-256 2c62fb3c8fef5062245e39554aa1874fb78a244dd466744c82e89743187b2e53

See more details on using hashes here.

File details

Details for the file clean_talk_client-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for clean_talk_client-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9cebe22aa34dd692fca1cb28649e5fb8d66469a33bd0a7a3ca4e3e369d1966d7
MD5 38bcebc054a6a1f043c312f91e9cc3c5
BLAKE2b-256 7625af5c9ad4f90fe160e2f55cf19ca646bb993c6531cc75d6c444cf87e321b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page