What is Telnyx Storage?
Telnyx Storage is a high-performance cloud storage service that caters to the storage and management of vast quantities of unstructured data. It prides itself on speedy data retrieval and exceptional durability, with 11 nines of reliability. Telnyx Storage provides APIs and SDKs to facilitate seamless integration with a variety of third-party tools and applications.
The main difference between Telnyx Storage and other platforms like Google Cloud Storage is in pricing. Unlike Google Cloud Storage, Telnyx Storage does not charge egress fees. Regardless of whether they are Class A or B operations, Telnyx Storage is roughly 70% less expensive than Google Cloud Storage.
Telnyx Storage is built on distributed Web3 technology, which provides reliable and efficient data storage at the edge. It also offers an S3-compatible API, so you can point your S3-centric applications at Telnyx endpoints for easy migration and a faster way to realize your cost savings.
For managed service providers and resellers, Telnyx Storage can be used to scale disaster recovery and backup and restore services across your client base.
What is a storage bucket?
A storage bucket is a unit of storage that you can create within the Telnyx Storage service. You can create your first storage bucket with a few clicks or a simple API command. There is no additional cost for creating unlimited buckets.
Here are some key points about storage buckets:
Creation: You can create a storage bucket either through the Telnyx portal or by using an API command.
Unlimited Buckets: Telnyx allows you to create unlimited storage buckets at no additional cost.
S3-Compatible API: Telnyx has built its API to be S3-compatible. This means you can point your S3-centric applications at Telnyx endpoints for easy migration and a faster way to realize your cost savings.
Use Cases: You can use storage buckets to store your multi-modal, raw data for embeddings and fine-tuning your datasets. You can securely access that data with zero egress fees.
Where can I configure Storage?
Once you are signed into your account, look for the Storage section on the left navigation bar.
When you click into it, you'll be brought to the following page:
Click the "Get Started" button to begin.
Create Storage Bucket
Give the bucket a unique name in the bucket name field (required). The name must be 3-65 characters long and can consist only of lowercase letters, numbers, dots (.), or hyphens.
If you give the bucket a name that's already been used, you will see the following error response:
The requested bucket name is not available. The bucket namespace is shared by all users of the system. Specify a different name and try again.
The region will default to US-Central-1 and in the near future more regions will be available to choose.
Select the radio button for whether you want to grant public access to the bucket.
By default, all buckets remain private and can only be accessed by the user who created them. However, if you choose to make the bucket publicly accessible, a bucket policy will be applied that grants read-only access to all objects within the bucket to any user.
Apply tags to easily organise and manage your buckets with key value pairs by clicking the green + icon.
Then click create where you can start to add objects to your bucket.
Adding object to the bucket
When your bucket is created, you will see a row available to click into like in the below image:
If you didn't add tags from the previous step, don't worry click the + icon under the tags column to add them at any time.
You can delete your bucket by clicking the thrash icon below the actions column. Note, you can only delete a bucket when it's empty and any objects that were associated with it are deleted from it.
Click the bucket name to access the bucket settings.
Uploading object to the bucket
Click the upload object button in the middle of the page for the first time and the upload object on the top right for subsequent uploads.
A popup window will appear like below:
Drag and drop the file or click the browse files button to search for the file you want to upload.
By default, the checkbox for encrypting the objects are enabled by default.
You can once again specify tags on the objects by setting key value pairs.
When you're ready, click the upload object button. You'll see a progress bar to let you know when the file is uploaded and can click done when it's finished.
You can upload virtually any type of file to your Telnyx Storage bucket. This includes but is not limited to:
Text files (.txt, .csv, .json, .xml, etc.)
Image files (.jpg, .png, .gif, etc.)
Video files (.mp4, .mov, .avi, etc.)
Audio files (.mp3, .wav, .aac, etc.)
Document files (.pdf, .docx, .xlsx, etc.)
Archive files (.zip, .tar, .rar, etc.)
There are no restrictions on the file types that can be uploaded. However, you should ensure that you have the necessary rights and permissions to store and distribute any data you upload to your bucket.
In my example I've uploaded a pdf file from the text that exists in this support article.
What are these AI features I see?
You can click the "summarise bucket" button to get a summary of the contents.
Currently, these file types are the only file types support for using the AI features on the objects.
txt/unstructured text files
audio / video (mp3, mp4, mpeg, mpga, m4a, wav, or webm ) - Max of 20mb file size.
When the summary is finished generating, a popup window will show up detailing the summary of the contents of your file as seen below:
You can also click the embed button to embed your content so it can be used within our AI playground (inference).
Remember, that only supported file type objects in the bucket will be embedded.
Visit the AI Playground
When your files are embedded for AI use, click the AI Playground sub tab button beside the bucket sub tab.
You can select the model to run the inference on, there are several options available such as GPT4 and open source models.
Select an AI-enabled bucket to test how AI would respond with its contents.
Add your Open AI Key if you use the Open AI models.
Setting temperature using the slider bar controls the quality of the output. The higher the value, the more random the output. The lower the value, the more focused the result.
Setting max tokens allows to generate the maximum number of tokens for the chat completion that's made.
Here I'm asking what the difference is between the D15 and D16 error from my document. The output will be streamed in real-time via the user interface for you to see when you click the send button.
This was the output:
D15 and D16 are error codes indicating different issues with call termination. D15 relates to the outbound voice profile used with the SIP Connection being inactive. If the outbound voice profile is not active, customers are advised to go to their outbound voice profile section and ensure the status of the profile is active, and if it is, refresh the status by toggling it off and back on again. On the other hand, D16 indicates that the SIP Connection used to place the termination call is inactive. In these cases, customers should go to their SIP Connections page and ensure the status of the SIP Connection is active, and refresh the status if needed by toggling it off and back on again(SOURCES: https://storage.telnyx.com/my-bucket-2/telnyx-sip-responses.pdf).
Why would I want to embed and infer on my objects in my buckets?
We'll be releasing API endpoints that you can use to programmatically send requests to embed and infer on your objects.
Telnyx created an AI assistant to help provide support in answering frequently asked questions about our products through a combination of embedding our telnyx.com website, support center website and developer documentation website. You can read more about it here.
Embedding and inferring on objects in your buckets, especially in cloud storage contexts like Telnyx Storage, can serve multiple valuable use cases like our AI Assistant above.
The term "objects" here refers to items stored in these buckets, which can range from text files, images, videos, and other forms of data.
Here's why you might want to embed and infer on these objects:
Content-Based Recommendation: Similar to the earlier example, if you have a catalog of products, movies, books, or any content represented as objects in your bucket, you can generate embeddings for each item. When a user interacts with one item, you can quickly recommend other items with similar embeddings.
Semantic Search: If your bucket contains text documents, embeddings can be used to enable semantic search. Traditional keyword search only matches exact phrases, but with embeddings, you can find documents that are semantically related to a query, even if they don't contain the exact keywords.
Image or Video Recognition: If your buckets contain images or videos, embeddings can represent the visual content. You can then use these embeddings for image classification, object detection, or even to find visually similar content.
Data Clustering and Organization: Especially in large buckets with varied content, embeddings can help cluster similar items together, making it easier to organize, manage, and retrieve related items.
Anomaly Detection: In scenarios like system logs or transaction records stored as objects in buckets, embeddings can capture the essence of each entry. You can then build models to detect anomalous entries that deviate significantly from the norm.
Reduced Latency: Inferring directly on objects within the buckets, especially when using cloud-native tools, can lead to reduced latency in predictions. You don't need to move data out of storage to a separate processing location; you can process it in place.
How can I change my storage location?
At this moment in time the only available region is US Central 1. Other regions will be available in the future.
How do I give sub members of my organisation access to my storage buckets?
At this moment in time, the organisation owners storage buckets can only be accessed by the organisation owner. Likewise, sub members of your organisation who create their own buckets can't be accessed by the organisation owner. In the near future we hope to expose access to the buckets.