GPT4 Turbo Json Mode. Как активировать и как пользоваться на Python.

ChatGPT

В этой статье разберем как с помощью языка Python активировать GPT4 Turbo JSON Mode и получать ответ от сервера OpenAI в виде Python словаря.

Если вы разрабатываете на Python решения с искусственным интеллектом – вступайте в чат AI разработчиков на Python.

Как активировать GPT4 Turbo JSON Mode в библиотеке openai

Для активации JSON Mode нам нужно сделать 2 ключевые вещи:

  1. В system сообщении дать инструкцию о том, чтобы GPT4 отвечала в формате JSON. При этом мы можем задать конкретный формат.
  2. В 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)

Видео гайд

https://youtu.be/39N5pIDent4

Как активировать GPT4 Turbo JSON Mode в библиотеке langchain

Для активации JSON Mode нам нужно сделать 2 ключевые вещи:

  1. В SystemMessage дать инструкцию о том, чтобы GPT4 отвечала в формате JSON. При этом мы можем задать конкретный формат.
  2. В 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']

Полезные ссылки

Нейросети и искусственный интеллект