Обновить solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/solution.py
This commit is contained in:
+1
-13
@@ -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 = (
|
||||||
|
|||||||
Reference in New Issue
Block a user