Para que
Controlador de IA generativa entenda o formato das entradas e saídas do seu LLM personalizado, você deve escrever scripts de transformador. Quando você cria um registro de transformador, o código e os comentários são fornecidos para você usar como um guia durante a edição. Esses scripts dependem dos objetos de solicitação e resposta esperados que são interpretados pelo seu modelo.
Por exemplo, a estrutura de solicitação Azure OpenAI é semelhante ao seguinte script:
{"messages": [{"role":"user", "content":"Summarize the following text: <<content>>"}], "max_tokens": 800, "temperature": 0.7}
O script do transformador de solicitação para essa estrutura de solicitação é o seguinte:
(function(inputs) {
/* write code here to construct the request body and any custom headers needed using the inputs object.
inputs structure: {
prompt_data: object,
request_data: object
} */
var requestData = inputs.request_data;
var promptData = inputs.prompt_data;
var prompt = promptData.prompt;
var model = promptData.model;
// construct body using the inputs
var body = {
messages: [{
"role": "user",
"content": prompt
}],
max_tokens: parseInt(promptData.max_tokens),
temperature: parseInt(promptData.temperature)
};
//construct headers using the inputs
var headers = {};
return {
body: body,
headers: headers
};
})(inputs);
A estrutura de resposta de
Azure OpenAI é semelhante a este script:
{
"choices": [{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "<<response>>",
"role": "assistant"
}
}],
"created": 1714994995,
"id": "chatcmpl-9LqpXeLVXDAi6kciPfLeIDjmALeea",
"model": "gpt-35-turbo-16k",
"object": "chat.completion",
"usage": {
"completion_tokens": 47,
"prompt_tokens": 70,
"total_tokens": 117
}
}
Por causa dessa estrutura de resposta, o script do transformador de resposta é semelhante a este script:
(function(inputs) {
/* write code here to transform the llm response into an array of text responses, using the inputs object
inputs structure: {
prompt_data: object,
request_data: object,
response_body: string,
response_headers: string
} */
var requestData = inputs.request_data;
var promptData = inputs.prompt_data;
var responseBody = JSON.parse(inputs.response_body);
gs.info("response : " + inputs.response_body);
var responseTexts = [];
// write code here to populate the responseTexts array.
responseTexts.push(responseBody.choices[0].message.content);
return responseTexts;
})(inputs);