Я делаю один и тот же вызов Azure Open AI, используя API Java и Python, и получаю совершенно разные результаты:
Одно и то же системное приглашение >
Одинаковое приглашение пользователя
Одинаковые (последние) версии пакетов azureai для Java и Python
Несмотря на то, что подаются одни и те же запросы пользователя и системы, ответы очень сильно различаются: приглашение Python является «правильным» и соответствует рекомендациям, указанным в приглашении.
Я предоставление рабочего примера Подсказка пользователю
The following text is a customer complaint about Cheque In. Your task is to summarise your understanding of what the customer complaint was about in a few sentences.
I received a check from NS&I for £425 and tried to upload it using the check system on my online account but your system does not accept checks from the government there, I now have to drive 16 miles pay for parking ti the nearest Big Bank bank !! All because your system does not accept government checks !!!!!
Always follow these guidelines in your response:
* Start with "I understand that…".
* DO NOT include anything beyond your summary.
* Always use active voice.
* Always address the customer directly using "you".
* Refer to the bank as "we" and refer to any human advisor or agent as a colleague.
* Be clear, polite, and use language that is easy to understand.
* NEVER include any details about internal bank processes or systems, instead say "our records".
* Only use facts from the provided context. DO NOT make up information.
* This task is VERY sensitive; you MUST NOT make mistakes.
* DO NOT mention account markers.
* Always format monetary values as £x,xxx.xx.
* Use “day month year” format for dates e.g 22 May 2023
* Only use the last 4 digits of account numbers.
* Always use British spelling, NOT American.
this.setEnvironmnet();
//Get JWT
String auth = String.format("%s/%s", "https://login.microsoftonline.com", System.getProperty("AZURE_TENANT_ID"));
IClientSecret mySecret = ClientCredentialFactory.createFromSecret(System.getProperty("AZURE_CLIENT_SECRET"));
ConfidentialClientApplication app = ConfidentialClientApplication.builder(System.getProperty("AZURE_CLIENT_ID"), mySecret)
.authority(auth)
.proxy(getProxy())
.build();
Set scopes = new HashSet();
scopes.add(String.format("%s/.default", System.getProperty("AZURE_CLIENT_ID")));
ClientCredentialParameters params = ClientCredentialParameters.builder(scopes).build();
IAuthenticationResult result = app.acquireToken(params).get(5000, TimeUnit.MILLISECONDS);
//Add JWT to header - get a 401 if try to use TokenCredential!
ClientOptions options = new ClientOptions();
List headers = new ArrayList();
headers.add(new Header("Authorization", String.format("Bearer %s", result.accessToken())));
options.setHeaders(headers);
//get client
OpenAIClient client = new OpenAIClientBuilder()
.clientOptions(options)
// .credential(this.getToken())
.endpoint(System.getProperty("AZURE_GPT4O_URL"))
.buildClient();
//Build and submit Prompt
List chatMessages = new ArrayList();
chatMessages.add(new ChatRequestSystemMessage(this.getUnderstandingSystemPrompt()));
chatMessages.add(new ChatRequestUserMessage(this.getUnderstandingUserPrompt()));
ChatCompletionsOptions chatOptions = new ChatCompletionsOptions(chatMessages);
ChatCompletions response = this.getClient().getChatCompletions("gpt4o_2024-05-13", chatOptions);
response.getChoices().forEach(message -> {
System.out.println(message.getMessage().getContent());
});
Результаты Python
Я понимаю, что вы получили чек на сумму 425 фунтов стерлингов от NS&I и попытались загрузить его с помощью нашего проверьте систему в своем онлайн-аккаунте. Ваша жалоба заключается в том, что наша система не принимает государственные чеки, поэтому теперь вам необходимо проехать 16 миль и оплатить парковку, чтобы посетить ближайшее отделение Большого банка. Результаты Java
Уважаемый клиент,
Спасибо, что обратились к нам. Я понимаю ваше разочарование по поводу проблемы с чековым депозитом на сумму 425 долларов США. Примите мои искренние извинения за причиненные вам неудобства.
Из вашего сообщения следует, что вы пытались загрузить чек с помощью онлайн-системы, но столкнулись с проблемой, поскольку наша система это делает. не поддерживать чеки от правительства. Теперь вы оказались в ситуации, когда вам нужно проехать 16 миль до ближайшего к нам отделения для парковки, что только усугубляет ваше разочарование.
Пожалуйста, позвольте мне систематически решать ваши проблемы:
Понимание проблемы:
Мы понимаем что вы получили чек от правительства и попытались загрузить его с помощью нашей онлайн-системы проверки.
В настоящее время система не принимает чеки, выданные правительством, поэтому вам приходится прибегать к посещению филиала в человек.
Опыт работы с клиентами:
Принимаем к сведению Ваши неудобства, связанные с необходимостью проехать значительное расстояние для посещения филиала. Мы сочувствуем неожиданным неприятностям, которые это причинило вам.
Двигаясь вперед, вот чем мы можем вам помочь:
Альтернативная подача:
Вы можете отправить чек в свой филиал. Если вы предпочитаете этот вариант, сообщите нам, чтобы мы могли предоставить вам необходимую информацию и обеспечить быструю обработку и ответ.
Отзывы для улучшения:
Ваш отзыв будет передан нашим ИТ-специалистам и специалистам по обслуживанию для оценки. возможность включения чеков государственного образца в онлайн-систему обработки чеков.
Компенсация за неудобства:
Мы хотели бы предложить вам небольшую компенсацию за ваши неудобства. Пожалуйста, сообщите нам свой почтовый адрес, и мы возместим вам расходы на поездку.
Личная помощь:
Если у вас есть какие-либо другие конкретные потребности или помощь, пожалуйста, не стесняйтесь сообщить нам об этом. Мы здесь, чтобы помочь вам.
Еще раз приношу извинения за неудобства. Благодарим вас за понимание и терпение, пока мы работаем над решением этой проблемы. Благодарим вас за сотрудничество с нами и надеемся на лучшее обслуживание в будущем.
С уважением,
[Ваше имя]
Отдел обслуживания клиентов
Большой банк
Как вы можете видеть, в версии Java приглашение пользователя в значительной степени игнорируется - любая помощь оценил
Я делаю один и тот же вызов Azure Open AI, используя API Java и Python, и получаю совершенно разные результаты: [list] [*]Одно и то же системное приглашение > [*]Одинаковое приглашение пользователя [*]Одинаковые (последние) версии пакетов azureai для Java и Python [/list] Несмотря на то, что подаются одни и те же запросы пользователя и системы, ответы очень сильно различаются: приглашение Python является «правильным» и соответствует рекомендациям, указанным в приглашении. Я предоставление рабочего примера [b]Подсказка пользователю[/b] [code]The following text is a customer complaint about Cheque In. Your task is to summarise your understanding of what the customer complaint was about in a few sentences.
I received a check from NS&I for £425 and tried to upload it using the check system on my online account but your system does not accept checks from the government there, I now have to drive 16 miles pay for parking ti the nearest Big Bank bank !! All because your system does not accept government checks !!!!!
Always follow these guidelines in your response:
* Start with "I understand that…". * DO NOT include anything beyond your summary. * Always use active voice. * Always address the customer directly using "you". * Refer to the bank as "we" and refer to any human advisor or agent as a colleague. * Be clear, polite, and use language that is easy to understand. * NEVER include any details about internal bank processes or systems, instead say "our records". * Only use facts from the provided context. DO NOT make up information. * This task is VERY sensitive; you MUST NOT make mistakes. * DO NOT mention account markers. * Always format monetary values as £x,xxx.xx. * Use “day month year” format for dates e.g 22 May 2023 * Only use the last 4 digits of account numbers. * Always use British spelling, NOT American. [/code] [b]Системная подсказка[/b] [code]You are a complaint handler for a customer service department at Big Bank [/code] Код Python [code]from dotenv import load_dotenv import os, sys import jwt import openai from msal import ConfidentialClientApplication from openai import AzureOpenAI
response = chat.chat.completions.create( model=deployment_model_chat, messages=[ {"role": "system", "content": "You are a complaint handler for a customer service department at Big Bank"}, {"role": "user", "content": user_prompt}, ] )
//Add JWT to header - get a 401 if try to use TokenCredential! ClientOptions options = new ClientOptions(); List headers = new ArrayList(); headers.add(new Header("Authorization", String.format("Bearer %s", result.accessToken()))); options.setHeaders(headers);
//Build and submit Prompt List chatMessages = new ArrayList(); chatMessages.add(new ChatRequestSystemMessage(this.getUnderstandingSystemPrompt())); chatMessages.add(new ChatRequestUserMessage(this.getUnderstandingUserPrompt())); ChatCompletionsOptions chatOptions = new ChatCompletionsOptions(chatMessages); ChatCompletions response = this.getClient().getChatCompletions("gpt4o_2024-05-13", chatOptions); response.getChoices().forEach(message -> { System.out.println(message.getMessage().getContent()); }); [/code] [b]Результаты Python[/b] Я понимаю, что вы получили чек на сумму 425 фунтов стерлингов от NS&I и попытались загрузить его с помощью нашего проверьте систему в своем онлайн-аккаунте. Ваша жалоба заключается в том, что наша система не принимает государственные чеки, поэтому теперь вам необходимо проехать 16 миль и оплатить парковку, чтобы посетить ближайшее отделение Большого банка. [b]Результаты Java Уважаемый клиент, Спасибо, что обратились к нам. Я понимаю ваше разочарование по поводу проблемы с чековым депозитом на сумму 425 долларов США. Примите мои искренние извинения за причиненные вам неудобства. Из вашего сообщения следует, что вы пытались загрузить чек с помощью онлайн-системы, но столкнулись с проблемой, поскольку наша система это делает. не поддерживать чеки от правительства. Теперь вы оказались в ситуации, когда вам нужно проехать 16 миль до ближайшего к нам отделения для парковки, что только усугубляет ваше разочарование. Пожалуйста, позвольте мне систематически решать ваши проблемы: [list] [*]Понимание проблемы[/b]: [list] Мы понимаем что вы получили чек от правительства и попытались загрузить его с помощью нашей онлайн-системы проверки. [*]В настоящее время система не принимает чеки, выданные правительством, поэтому вам приходится прибегать к посещению филиала в человек. [/list]
[*][b]Опыт работы с клиентами[/b]: [list] Принимаем к сведению Ваши неудобства, связанные с необходимостью проехать значительное расстояние для посещения филиала. Мы сочувствуем неожиданным неприятностям, которые это причинило вам. [/list]
[/list] Двигаясь вперед, вот чем мы можем вам помочь: [list] [*][b]Альтернативная подача[/b]: [list] Вы можете отправить чек в свой филиал. Если вы предпочитаете этот вариант, сообщите нам, чтобы мы могли предоставить вам необходимую информацию и обеспечить быструю обработку и ответ. [/list]
[*][b]Отзывы для улучшения[/b]: [list] Ваш отзыв будет передан нашим ИТ-специалистам и специалистам по обслуживанию для оценки. возможность включения чеков государственного образца в онлайн-систему обработки чеков. [/list]
[*][b]Компенсация за неудобства[/b]: [list] Мы хотели бы предложить вам небольшую компенсацию за ваши неудобства. Пожалуйста, сообщите нам свой почтовый адрес, и мы возместим вам расходы на поездку. [/list]
[*] [b]Личная помощь[/b]: [list] Если у вас есть какие-либо другие конкретные потребности или помощь, пожалуйста, не стесняйтесь сообщить нам об этом. Мы здесь, чтобы помочь вам. [/list]
[/list] Еще раз приношу извинения за неудобства. Благодарим вас за понимание и терпение, пока мы работаем над решением этой проблемы. Благодарим вас за сотрудничество с нами и надеемся на лучшее обслуживание в будущем. С уважением, [Ваше имя] Отдел обслуживания клиентов
Большой банк Как вы можете видеть, в версии Java приглашение пользователя в значительной степени игнорируется - любая помощь оценил