This guide provides a walk-through of how to use the official Algorithmia PHP Client to call algorithms and manage data through the Algorithmia platform.
Here you will learn how to install the Algorithmia PHP Client, run machine learning algorithms directly from PHP, and work with the Data API by uploading and downloading files.
Getting Started with Algorithmia
For non-Composer installs, use the source.
For more information and examples using the PHP Client you can check out the PHP Client README.
Now, inside yourPHP script, import the Algorithmia library via Composer’s
autoload, and create the Algorithmia client:
Now you’re ready to start working with Algorithmia in PHP. As a simple test, call the Hello World API:
If you prefer not to have your API Key in the actual PHP files, you can set a system variable instead:
…then omit the Key in your PHP files:
Working with Data Using the Data API
This guide will show you how to work with the Hosted Data option on the Algorithmia platform which is available to both algorithm and application developers.
If you wish to follow along working through the example yourself, create a text file that contains any unstructured text such as a chapter from a public domain book or article. We used a chapter from Burning Daylight, by Jack London which you can copy and paste into a text file. Or copy and paste it from here: Chapter One Burning Daylight, by Jack London. This will be used throughout the guide.
Create a Data Collection
This section will show how to create a data collection which is essentially a folder of data files hosted on Algorithmia for free.
First create a data collection called nlp_directory:
A Data URI uniquely identifies files and directories and contains a protocol “data://” and path “YOUR_USERNAME/data_collection”. For more information on the Data URI see the Data API Specification.
Instead of your username you can also use ‘.my’ when calling algorithms. For more information about the ‘.my’ pseudonym check out the Hosted Data Guide.
Work with Directory Permissions
When we created the data collection in the previous code snippet, the default setting is
ACL::MY_ALGORITHMS, which is a permission type that allows other users on the platform to interact with your data through the algorithms you create if you decide to contribute to algorithm development. This means users can call your algorithm to perform an operation on your data stored in this collection, otherwise the algorithm you created would only work for you.
If we instead wanted the folder to be completely private (only you can access it) we would have run:
For more information on collection-based Access Control Lists (ACLs) and other data collection permissions go to the Hosted Data Guide.
Upload Data to your Data Collection
So far you’ve created your data collection and checked and updated directory permissions. Now you’re ready to upload the text file that you created at the beginning of the guide to your data collection using the Data API.
First, we’ll check to see if the file already exists in the data collection. If not, we’ll upload your local file:
This endpoint will replace a file if it already exists. If you wish to avoid replacing a file, check if the file exists before using this endpoint.
You can confirm that the file was created by navigating to Algorithmia’s Hosted Data Source and finding your data collection and file.
Downloading Data from a Data Collection
Next check if the file that you just uploaded to data collections exists, and try downloading it to a local temp file:
This copies the file from your data collection and saves it as a file on your local machine, storing the filename in the variable
Alternately, if you just need the text content of the file to be stored in a variable, you can retrieve the remote file’s content without saving the actual file:
This will get your file as a string, saving it to the variable
$file_contents. If the file was binary (an image, etc), you could instead use the function
getBytes() to retrieve the file’s content as a byte array.
Now you’ve seen how to upload a local data file, check if a file exists in a data collection, and download the file contents.
For more methods on how to get a file using the Data API from a data collection go to the API Specification.
Call an Algorithm
Finally we are ready to call an algorithm. In this guide we’ll use the natural language processing algorithm called Summarizer. This algorithm results in a string that is the summary of the text content you pass in as the algorithm’s input.
A single algorithm may have different input and output types, or accept multiple types of input, so consult the algorithm’s description for usage examples specific to that algorithm.
This example shows the summary of the text file which we downloaded from our data collection and set as the variable called
input in the previous code sample.
Create the algorithm object and pass in the variable
This guide used the the first chapter of Jack London’s Burning Daylight and the Summarizer algorithm outputs:
“It was a quiet night in the Shovel. The miners were in from Moseyed Creek and the other diggings to the west, the summer washing had been good, and the men’s pouches were heavy with dust and nuggets. MacDonald grinned and nodded, and opened his mouth to speak, when the front door swung wide and a man appeared in the light.”
If you are interested in learning more about working with unstructured text data check out our guide Introduction to Natural Language Processing.
Your account can make up to 80 Algorithmia requests at the same time (this limit can be raised if needed).
Algorithm requests have a payload size limit of 10MB for input and 15MB for output. If you need to work with larger amounts of data, you can make use of the Algorithmia Data API.
This guide covered installing the Algorithmia client, uploading and downloading data to and from a user created data collection, checking if a file exists using the Data API, calling an algorithm, and handling errors.
For convenience, here is the whole script available to run: