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