Я пытаюсь применить чат-бота с помощью службы Azure OpenAI со своими собственными данными. Я хочу дать ему конкретные инструкции по персонализации. Поскольку он использует ChatGPT, я могу общаться с ним практически на любом языке. Поэтому я поручил ему отвечать на запросы пользователей на том языке, на котором они были заданы. Кроме того, я дал ему имя. Однако на первый вопрос он всегда отвечает на английском (на последующие вопросы он в основном меняется), а когда я спрашиваю его имя, он говорит, что его нет. Это говорит о том, что мое «системное сообщение» вообще не рассматривается. Буду благодарен за любую помощь.
import os
import openai
import dotenv
import re
dotenv.load_dotenv()
endpoint = os.environ.get("AZURE_OAI_ENDPOINT")
api_key = os.environ.get("AZURE_OAI_KEY")
deployment = os.environ.get("AZURE_OAI_DEPLOYMENT")
client = openai.AzureOpenAI(
azure_endpoint=endpoint,
api_key=api_key,
api_version="2024-02-01",
)
# Initial system message
system_message = {
"role": "system",
"content": "Sei un assistente virtuale chiamato Jonathan. Rispondi sempre nella stessa lingua della domanda dell'utente.",
}
def get_response(user_query):
completion = client.chat.completions.create(
model=deployment,
temperature=0.5,
max_tokens=1000,
messages=[
system_message,
{
"role": "user",
"content": user_query,
},
],
extra_body={
"data_sources": [
{
"type": "azure_search",
"parameters": {
"endpoint": os.environ["AZURE_SEARCH_ENDPOINT"],
"index_name": os.environ["AZURE_SEARCH_INDEX"],
"authentication": {
"type": "api_key",
"key": os.environ["AZURE_SEARCH_KEY"],
}
}
}
],
}
)
# Extract the response content
response_content = completion.choices[0].message.content
# Remove references like [doc4] using regex
cleaned_response_content = re.sub(r'\[doc\d+\]', '', response_content)
return cleaned_response_content
def main():
while True:
# Prompt the user for input
user_query = input("Per favore inserisci la tua domanda (o 'esci' per terminare): ")
if user_query.lower() in ['esci', 'exit', 'quit']:
print("Bye bye!")
break
# Get and print the response
response = get_response(user_query)
print("Response: " + "\n" + response + "\n")
if __name__ == '__main__':
main()
Подробнее здесь: https://stackoverflow.com/questions/786 ... ion-at-all
Почему чат-бот вообще не учитывает «системное сообщение»? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение