Обновить solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/solution.py

This commit is contained in:
2026-05-27 07:31:08 +00:00
parent e7a4c478d6
commit b268f361ed
@@ -1,19 +1,11 @@
import os
from typing import List from typing import List
from pydantic import BaseModel, Field
# LangChain — обёртки над моделью и парсером
from langchain_core.prompts import PromptTemplate from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import PydanticOutputParser from langchain_core.output_parsers import PydanticOutputParser
# LangChain — интеграция с OpenAI
from langchain_openai import ChatOpenAI from langchain_openai import ChatOpenAI
from pydantic import BaseModel, Field
class AssignmentCard(BaseModel): class AssignmentCard(BaseModel):
"""Структурированная карточка учебного задания."""
title: str = Field(..., description="Название задания одной фразой") title: str = Field(..., description="Название задания одной фразой")
subject: str = Field(..., description="Учебная дисциплина или тема") subject: str = Field(..., description="Учебная дисциплина или тема")
deadline_hint: str | None = Field( deadline_hint: str | None = Field(
@@ -31,10 +23,8 @@ class AssignmentCard(BaseModel):
def main() -> None: def main() -> None:
# Парсер структурированного вывода из langchain_core
output_parser = PydanticOutputParser(pydantic_object=AssignmentCard) output_parser = PydanticOutputParser(pydantic_object=AssignmentCard)
# Шаблон промпта из langchain_core
template = PromptTemplate( template = PromptTemplate(
template=( template=(
"Прочитай описание учебного задания и заполни все поля карточки.\n\n" "Прочитай описание учебного задания и заполни все поля карточки.\n\n"
@@ -48,10 +38,8 @@ def main() -> None:
}, },
) )
# Языковая модель через обёртку langchain_openai
model = ChatOpenAI(model="gpt-4o-mini", temperature=0) model = ChatOpenAI(model="gpt-4o-mini", temperature=0)
# Цепочка LangChain: промпт | модель | парсер
chain = template | model | output_parser chain = template | model | output_parser
sample = ( sample = (