Согласно этому обзору метод with_structured_output, который мне нужен, (пока) не реализован для моделей на AWS Bedrock, поэтому я ищу обходной путь или любой метод для репликации этой функциональности.< /p>
Ключевая функциональность, которую я ищу, показана в этом примере:
Код: Выделить всё
from typing import List
from typing import Literal
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_openai import ChatOpenAI
class RouteQuery(BaseModel):
"""Route a user query to the most relevant datasource."""
datasources: List[Literal["python_docs", "js_docs", "golang_docs"]] = Field(
...,
description="Given a user question choose which datasources would be most relevant for answering their question",
)
system = """You are an expert at routing a user question to the appropriate data source.
Based on the programming language the question is referring to, route it to the relevant data source."""
prompt = ChatPromptTemplate.from_messages(
[
("system", system),
("human", "{question}"),
]
)
llm = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0)
structured_llm = llm.with_structured_output(RouteQuery)
router = prompt | structured_llm
router.invoke(
{
"question": "is there feature parity between the Python and JS implementations of OpenAI chat models"
}
)
Код: Выделить всё
RouteQuery(datasources=['python_docs', 'js_docs'])
Кто-нибудь нашел обходной путь решения этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/784 ... hatbedrock