# Usage example
```python
from pydantic import BaseModel
from kozhindev_data_labeler import LLMClient
from kozhindev_data_labeler import LLMProcessor
class Step(BaseModel):
explanation: str = Field(..., description="Объяснение промежуточного вывода")
think: str = Field(..., description="Анализ промпта и предыдущего шага, согласование рассуждений")
class PredictLLm(BaseModel):
steps: list[Step] = Field(..., description="Пошаговое рассуждение")
message: str = Field(..., description="Краткий итог рассуждений")
target: str = Field(..., description="Классификация отзыва")
llm_client = LLMClient(
model='gpt-4o-mini',
api_key='API_KEY',
system_prompt='SYSTEM PROMPT'
response_format=PredictLLm
)
llm_processor = LLMProcessor(model_client=llm_client)
llm_processor.run(
'ОТЗЫВ',
'Сделай классификацию отзыва. 1 - негативный, 0 - положительный'
)
print(f'Ответ от модели: {llm.result}')
llm_processor.token_info() # Выведет информацию о потраченных токенах
```
Raw data
{
"_id": null,
"home_page": null,
"name": "kozhindev-data-labeler",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "kozhindev_datalaber classification llm",
"author": "YVoskanyan",
"author_email": "yuvoskanyan@team.kozhin.dev",
"download_url": "https://files.pythonhosted.org/packages/59/ee/3bb39af9d8e8216991eb7ed9397a5714c2a32ac3335cfe31049f47c7159d/kozhindev_data_labeler-0.0.2.tar.gz",
"platform": null,
"description": "# Usage example\n```python\nfrom pydantic import BaseModel\n\nfrom kozhindev_data_labeler import LLMClient\nfrom kozhindev_data_labeler import LLMProcessor\n\n\nclass Step(BaseModel):\n explanation: str = Field(..., description=\"\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430\")\n think: str = Field(..., description=\"\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u043c\u043f\u0442\u0430 \u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0448\u0430\u0433\u0430, \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439\")\n\n\nclass PredictLLm(BaseModel):\n steps: list[Step] = Field(..., description=\"\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435\")\n message: str = Field(..., description=\"\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u0438\u0442\u043e\u0433 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439\")\n target: str = Field(..., description=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043e\u0442\u0437\u044b\u0432\u0430\")\n\n\nllm_client = LLMClient(\n model='gpt-4o-mini',\n api_key='API_KEY',\n system_prompt='SYSTEM PROMPT'\n response_format=PredictLLm\n)\n\nllm_processor = LLMProcessor(model_client=llm_client)\n\n\nllm_processor.run(\n '\u041e\u0422\u0417\u042b\u0412',\n '\u0421\u0434\u0435\u043b\u0430\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043e\u0442\u0437\u044b\u0432\u0430. 1 - \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0439, 0 - \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439'\n)\n\nprint(f'\u041e\u0442\u0432\u0435\u0442 \u043e\u0442 \u043c\u043e\u0434\u0435\u043b\u0438: {llm.result}')\nllm_processor.token_info() # \u0412\u044b\u0432\u0435\u0434\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u0430\u0445\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "\u041f\u0430\u043a\u0435\u0442, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438",
"version": "0.0.2",
"project_urls": null,
"split_keywords": [
"kozhindev_datalaber",
"classification",
"llm"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b4e36b17248b66d5f9c2ba9ee924afc2d64e5ee38025ccbee18799718494d37c",
"md5": "1a7122342ef6a076b2dd2f6ee10fcc92",
"sha256": "caa210514df392fdfd591bb5d8f648dc0aad21d7b9049def2ba11475da1b94d7"
},
"downloads": -1,
"filename": "kozhindev_data_labeler-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1a7122342ef6a076b2dd2f6ee10fcc92",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 4780,
"upload_time": "2025-09-02T06:41:41",
"upload_time_iso_8601": "2025-09-02T06:41:41.563755Z",
"url": "https://files.pythonhosted.org/packages/b4/e3/6b17248b66d5f9c2ba9ee924afc2d64e5ee38025ccbee18799718494d37c/kozhindev_data_labeler-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "59ee3bb39af9d8e8216991eb7ed9397a5714c2a32ac3335cfe31049f47c7159d",
"md5": "ab564a90ab3c8158424bdcb396212101",
"sha256": "4e8ba2d110c88ef4d652724952443667c6f0328d7e82d3f95b82e976eaf75622"
},
"downloads": -1,
"filename": "kozhindev_data_labeler-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "ab564a90ab3c8158424bdcb396212101",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 3860,
"upload_time": "2025-09-02T06:41:42",
"upload_time_iso_8601": "2025-09-02T06:41:42.507236Z",
"url": "https://files.pythonhosted.org/packages/59/ee/3bb39af9d8e8216991eb7ed9397a5714c2a32ac3335cfe31049f47c7159d/kozhindev_data_labeler-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-02 06:41:42",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "kozhindev-data-labeler"
}