大模型结构化输出json, 最新方法更方便


from langchain_openai import ChatOpenAI
from pydantic import BaseModel, Field
# 替换后
from typing import List, Optional
class ChunkMetadata(BaseModel):
    summary: str = Field(description="1-2句话总结这个块的内容")
    keywords: List[str] = Field(description="5-7个关键词")
    hypothetical_questions: List[str] = Field(description="这个块能回答什么问题")
    table_summary: Optional[str] = Field(description="如果是表格,用自然语言描述")

# 用结构化输出,比解析文本可靠多了
enrichment_llm = ChatOpenAI( temperature=0,base_url="http://xxxx/v1", 
api_key='empty',
model="qwen3_vl").with_structured_output(ChunkMetadata)

import asyncio
semaphore = asyncio.Semaphore(10)
# print(enrichment_llm.invoke("1. 2023年1月1日,xxx在北京举行。2. 2023年1月1日,xxx二十届").model_dump())
print(enrichment_llm.ainvoke("1. 2023年1月1日,xxxxx会议在北京举行。2. 2023年1月1日,xxx第二十届").model_dump())

posted on 2025-10-30 14:18  张博的博客  阅读(4)  评论(0)    收藏  举报

导航