# label-studio-sdk **Repository Path**: polarbird/label-studio-sdk ## Basic Information - **Project Name**: label-studio-sdk - **Description**: https://github.com/HumanSignal/label-studio-sdk.git 镜像 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-01 - **Last Updated**: 2024-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Label Studio Python Library --- > :warning: **Note**
> > The version of `label-studio-sdk<1` is deprecated and no longer supported. We recommend updating to the latest version. > If you still want to use the old version, you can install it with `pip install "label-studio-sdk<1"`. > OR You can find the branch with the old version by cloning the repository and checking out the branch as follows: > > ```sh > git clone https://github.com/HumanSignal/label-studio-sdk.git > cd label-studio-sdk > git fetch origin > git checkout release/0.0.34 > ``` > > OR you can change your import statements as follows: > ```python > from label_studio_sdk import Client > from label_studio_sdk.data_manager import Filters, Column, Operator, Type > from label_studio_sdk._legacy import Project > ``` --- [![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-SDK%20generated%20by%20Fern-brightgreen)](https://github.com/fern-api/fern) [![pypi](https://img.shields.io/pypi/v/label-studio-sdk.svg)](https://pypi.python.org/pypi/label-studio-sdk) The Label Studio Python Library provides convenient access to the Label Studio API from applications written in Python. # Documentation Explore the Label Studio API documentation [here](https://api.labelstud.io/). # Installation ```sh pip install --upgrade label-studio-sdk # or poetry add label-studio-sdk ``` # Usage ```python from label_studio_sdk.client import LabelStudio ls = LabelStudio( base_url='YOUR_LABEL_STUDIO_URL', api_key="YOUR_API_KEY", ) ``` # Examples Check more examples [here](https://api.labelstud.io/). ## Create a new project ```python from label_studio_sdk.label_interface import LabelInterface from label_studio_sdk.label_interface.create import labels project = ls.projects.create( name="Project name", description="Project description", label_config=LabelInterface.create({ "image": "Image", "bbox": labels(["cat", "dog"], tag_type="RectangleLabels") }) ) ``` ## Create a new task ```python task = ls.tasks.create( project=project.id, data={"image": "https://example.com/image.jpg"} ) ``` Now you can open the project `PROJECT_ID` in the Label Studio UI and create annotations for the task. ## Export annotations ```python annotations = [ task.annotations for task in ls.tasks.list(project=project.id, fields='all') if task.annotations ] ``` ## Async client ```python from label_studio_sdk.client import AsyncLabelStudio client = AsyncLabelStudio( api_key="YOUR_API_KEY", ) ``` ## Advanced ### Timeouts By default, requests time out after 60 seconds. You can configure this with a timeout option at the client or request level. ```python from label_studio_sdk.client import LabelStudio ls = LabelStudio( # All timeouts set to 20 seconds timeout=20.0 ) ls.projects.create(..., { # Override timeout for a specific method timeout=20.0 }) ``` ### Custom HTTP client You can override the httpx client to customize it for your use-case. Some common use-cases include support for proxies and transports. ```python import httpx from label_studio_sdk.client import LabelStudio ls = LabelStudio( http_client=httpx.Client( proxies="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0"), ), ) ``` ## Enterprise features ### Create comments ```python comment = ls.comments.create( project=project.id, annotation=annotation.id, text="Comment text" ) ``` # Contributing Please follow [this guide to contribute to the SDK](https://github.com/HumanSignal/label-studio-client-generator?tab=readme-ov-file#how-to-contribute) While we value open-source contributions to this SDK, this library is generated programmatically. Additions made directly to this library would have to be moved over to our generation code, otherwise they would be overwritten upon the next generated release. Feel free to open a PR as a proof of concept, but know that we will not be able to merge it as-is. We suggest opening an issue first to discuss with us! On the other hand, contributions to the README are always very welcome!