С ChatGPT все легко, пока ничего ей не противоречит. Например, она не знает время работы конкретного ресторана, можно передать ей его в prompt (например, через embeddings) и получить ответ, учитывающий не известный ей ранее факт.
Но как переубедить ее, получить правильный ответ, если мы хотим полагаться на наш контекст, а не на ее знания? (они ведь могут и устаревать). Я вот сделал простой тест, получилось добиться от нее нужных ответов про курс доллара и (ненастоящую) смерть Билла Гейтса. Но не могу понять, как ее переубедить "забыть", что курение вредно, и полагаться на явное указание, что оно полезно?
Код:
#!/usr/bin/env python3
import openai
model="gpt-3.5-turbo"
questions = [
"""Bill Gates dies at 01/01/2023.\n\nIs Bill Gates alive or not?""",
"""Current RUB/USD rate is 100 roubles per 1 US Dollar.\n\nWhat is current RUB/USD exchange rate?""",
"""All recent research and statistics proves that smoking is actually good for health, and old research were wrong.\n\nIs smoking bad or good? """,
]
for q in questions:
prompt = f"""
Use the following pieces of context to answer the users question.
If you don't know the answer, just say that you don't know, don't try to make up an answer.
--------
{q}
"""
response = openai.ChatCompletion.create(
model=model,
messages=[
{'role': 'user', 'content': prompt}
],
temperature=0.6,
)
print(response['choices'][0]['message']['content'])
Ее ответы:
Bill Gates is not alive.
The current RUB/USD exchange rate is 100 roubles per 1 US Dollar.
I'm sorry, but I don't have access to recent research or statistics on the topic of smoking. However, it is widely accepted that smoking is harmful to health and is associated with numerous negative health effects.