Я попробовал шаги, упомянутые в этой статье.
https://matthewbilyeu.com/blog/2022-09-01/responding-to-recruiter-emails-with-gpt-3
На скриншоте написано: Вот пример с OpenAI Playground.
Я набрал весь текст в «детской площадке», но не получил такого ответа, как показано на этом изображении. Я ожидал подобный текст, например {"name":"William", "company":"BillCheese"}
Я не знаю, как настроить параметры в веб-интерфейсе openAI.
Обновлять:
Я использовал этот код:
import json
import re, textwrap
import openai
openai.api_key = 'xxx'
prompt = f"""
Hi Matt! This is Steve Jobs with Inforation Edge Limited ! I'm interested in having you join our team here.
"""
completion = openai.Completion.create(
model = "text-davinci-002",
prompt=textwrap.dedent(prompt),
max_tokens=20,
temperature=0,
)
try:
json_str_response = completion.choices[0].text
json_str_response_clean = re.search(r".*(\{.*\})", json_str_response).groups()[0]
print (json.loads(json_str_response_clean))
except (AttributeError, json.decoder.JSONDecodeError) as exception:
print("Could not decode completion response from OpenAI:")
print(completion)
raise exception
и получил эту ошибку:
Could not decode completion response from OpenAI:
AttributeError: 'NoneType' object has no attribute 'groups'
Вы столкнулись с этой проблемой: Regex: AttributeError: объект «NoneType» не имеет атрибута «группы»
Взгляните на эту строку:
json_str_response_clean = re.search(r".*(\{.*\})", json_str_response).groups()[0]
Регулярное выражение не может найти ничего, соответствующего шаблону, поэтому возвращает None
. Ни у кого нет .groups(), поэтому вы получаете сообщение об ошибке. У меня недостаточно деталей, чтобы пойти дальше, но ссылка выше может привести вас туда.
Я не знаю, почему и автор вопроса, и один ответ выше меня используют RegEx. Согласно документации OpenAI, завершение возвращает объект JSON.
Не нужно сложно отлавливать конкретные вещи — просто загрузите возврат в словарь и получите доступ к нужным вам полям:
import json
# ...
# Instead of the try ... except block, just load it into a dictionary.
response = json.loads(completion.choices[0].text)
# Access whatever field you need
response["..."]
это сработало для меня:
question = "Write a python function to detect anomlies in a given time series"
response = openai.Completion.create(
model = "text-davinci-003",
prompt=question,
temperature=0.9,
max_tokens=150,
top_p=1,
frequency_penalty=0.0,
presence_penalty=0.6,
stop=[" Human:", " AI:"]
)
print(response)
print("==========Python Code======== = ")
print(response["choices"][0]["text"])