Package for using API models. It is designed mainly for experimenting with various models. It allows to easily process Hugging Face datasets, or JSONL/CSV datasets, and send requests to Ollama and OpenAI compatibles APIs with just using simple configuration files.
Project description
AICaller
Package for using API models. It is designed mainly for experimenting with various models. It allows to easily process Hugging Face datasets, or JSONL/CSV datasets, and send requests to OpenAI compatibles APIs with just using simple configuration files.
Installation
pip install aicaller
Usage
The package is designed a batch oriented way. It means that you must first create a batch file with API requests, and then you can send the requests to the API.
Using this two stage approach allows you to check and save the raw requests that are sent to the API.
If you prefer learning by doing, you can check the examples folder.
Batch file creation
Firstly, you need to create a batch file, fo that you can use the create_batch_file argument that expects a configuration --config (see config creation) and voluntary a --path to file with data to be processed.
aicaller create_batch_file --config config.yaml --path data.jsonl > batch.jsonl
Batch Split
It might be necessary to split the batch into smaller batches. It expects following arguments:
file- path to batch fileoutput- path to folder where the split files will be savedmax_tokens- maximum number of tokens in one batch
aicaller split_batch batch.jsonl splits 1000000
Sending requests
After your batch file is created, you can send the requests to the API (see API config creation). You can use the batch_request command. Here is an example of how to use it:
aicaller batch_request batch.jsonl -c api_config.yaml -r results.jsonl
To see all available options, you can use the --help argument:
aicaller batch_request --help
Configuration
There are two types of configuration files that you can use: one for creating batch files and one for sending requests to the API.
If you want to create a new configuration file, please use the create_config command, which will lead you through the process of creating a new configuration file:
aicaller create_config --path config.yaml
Batch file configuration
The batch file configuration is a YAML file that defines how to create the batch file from a dataset. Here we will describe multiple options that you can use in an order that they appear during the configuration creation process. Detailed description of each attribute is always available directly in the configuration file.
Convertor
There are following convertors available:
- ToOpenAIBatchFile
- Allows to create a batch file for OpenAI compatible APIs
- ToOllamaBatchFile
- Even though Ollama API is compatible for basic usage with OpenAI API, it is not compatible with all features. Thus, we suggest to use this convertor for Ollama API.
Loaders
This package allows to load Hugging Face datasets, or JSONL/CSV datasets, using following loaders:
- JSONLLoader
- Loads JSONL files using Hugging Face dataset loader
- CSVLoader
- Loads CSV files using Hugging Face dataset loader
- HFLoader
- Loads text oriented Hugging Face datasets
- HFImageLoader
- Loads image oriented Hugging Face datasets
Sample Assemblers
A sample assembler is a component responsible for creating a sample from loaded data. There are two assemblers one for text and one for images:
- TextDatasetAssembler
- ImageDatasetAssembler
Templates
Template specifies the format and content of a sample. It can be simple as string with Jinja2 template, or it can be whole chat history.
Now this package supports following types of templates:
- StringTemplate
- Simple string template, that allows to use Jinja2 template
- MessagesTemplate
- Allows to define whole chat history with roles and text/image content.
- As the specification of messages varies for different APIs. There are different types of message builders.
API configuration
File for configuring API connection. It is used for defining API key, URL, and other parameters.
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aicaller-1.1.10.tar.gz.
File metadata
- Download URL: aicaller-1.1.10.tar.gz
- Upload date:
- Size: 32.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bdf50c0abeb1df1edd5b6324442a1b8853c65afc8456bd63bbca23f90fce7fb
|
|
| MD5 |
8e02bcd28aa158628d5a04e8d220dc7c
|
|
| BLAKE2b-256 |
281f421170fd39493025a9fb712df8c2832e3a46377833bfcb6e7f788c024ee8
|
File details
Details for the file aicaller-1.1.10-py3-none-any.whl.
File metadata
- Download URL: aicaller-1.1.10-py3-none-any.whl
- Upload date:
- Size: 30.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43d534467c23d39d64f3076c577368d6718f6bd1e239590ca93c2d530ea56656
|
|
| MD5 |
38b97e9b9622252b3aba17af012c9097
|
|
| BLAKE2b-256 |
c235d343801ef0ee4f58849a8338d8b35affa463e68bf32d14cc51db2dd13454
|