В этой статье разберем как с помощью языка Python активировать GPT4 Turbo JSON Mode и получать ответ от сервера OpenAI в виде Python словаря.
Если вы разрабатываете на Python решения с искусственным интеллектом — вступайте в чат AI разработчиков на Python.
Содержание
Как активировать GPT4 Turbo JSON Mode в библиотеке openai
Для активации JSON Mode нам нужно сделать 2 ключевые вещи:
- В system сообщении дать инструкцию о том, чтобы GPT4 отвечала в формате JSON. При этом мы можем задать конкретный формат.
- В extra_body передать формат ответа.
Полный код Python функции с использованием библиотеки openai:
client = OpenAI(api_key=OPENAI_API_KEY)
model = "gpt-4-1106-preview"
def ask_gpt4_turbo(text):
chat_completion = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "Отвечай в формате JSON вида {'response': {'quote': русский текст, 'author': Имя на русском}}"
},
{
"role": "user",
"content": text
}
],
model=model,
extra_body={"response_format": {"type": "json_object"}}
)
response_text = chat_completion.choices[0].message.content
return json.loads(response_text)
Видео гайд
Как активировать GPT4 Turbo JSON Mode в библиотеке langchain
Для активации JSON Mode нам нужно сделать 2 ключевые вещи:
- В SystemMessage дать инструкцию о том, чтобы GPT4 отвечала в формате JSON. При этом мы можем задать конкретный формат.
- В model_kwargs передать формат ответа
Полный код Python функции с использованием библиотеки langchain:
def ask_gpt4_turbo(text):
"""
Делит сообщение по смыслам
"""
llm = ChatOpenAI(model="gpt-4-1106-preview", temperature=0.3,
model_kwargs={"response_format": {"type": "json_object"}},
openai_api_key=config.OPENAI_API_KEY)
sys_msg = "Верни JSON вида {'response': [str, str, str, ...]}"
human_msg_template = """
Раздели текст на смысловые блоки. Не придумывай ничего от себя.
Текст: {text}
"""
chat_template = ChatPromptTemplate.from_messages(
[
SystemMessage(content=sys_msg),
HumanMessagePromptTemplate.from_template(human_msg_template),
]
)
chain = LLMChain(llm=llm, prompt=chat_template)
output = chain.run({"text": text})
return json.loads(output)['response']








