mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
275 lines
6.6 KiB
JavaScript
275 lines
6.6 KiB
JavaScript
|
|
const formatGoogleInputs = require('./formatGoogleInputs');
|
||
|
|
|
||
|
|
describe('formatGoogleInputs', () => {
|
||
|
|
it('formats message correctly', () => {
|
||
|
|
const input = {
|
||
|
|
messages: [
|
||
|
|
{
|
||
|
|
content: 'hi',
|
||
|
|
author: 'user',
|
||
|
|
},
|
||
|
|
],
|
||
|
|
context: 'context',
|
||
|
|
examples: [
|
||
|
|
{
|
||
|
|
input: {
|
||
|
|
author: 'user',
|
||
|
|
content: 'user input',
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
author: 'bot',
|
||
|
|
content: 'bot output',
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
parameters: {
|
||
|
|
temperature: 0.2,
|
||
|
|
topP: 0.8,
|
||
|
|
topK: 40,
|
||
|
|
maxOutputTokens: 1024,
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
const expectedOutput = {
|
||
|
|
struct_val: {
|
||
|
|
messages: {
|
||
|
|
list_val: [
|
||
|
|
{
|
||
|
|
struct_val: {
|
||
|
|
content: {
|
||
|
|
string_val: ['hi'],
|
||
|
|
},
|
||
|
|
author: {
|
||
|
|
string_val: ['user'],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
context: {
|
||
|
|
string_val: ['context'],
|
||
|
|
},
|
||
|
|
examples: {
|
||
|
|
list_val: [
|
||
|
|
{
|
||
|
|
struct_val: {
|
||
|
|
input: {
|
||
|
|
struct_val: {
|
||
|
|
author: {
|
||
|
|
string_val: ['user'],
|
||
|
|
},
|
||
|
|
content: {
|
||
|
|
string_val: ['user input'],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
struct_val: {
|
||
|
|
author: {
|
||
|
|
string_val: ['bot'],
|
||
|
|
},
|
||
|
|
content: {
|
||
|
|
string_val: ['bot output'],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
parameters: {
|
||
|
|
struct_val: {
|
||
|
|
temperature: {
|
||
|
|
float_val: 0.2,
|
||
|
|
},
|
||
|
|
topP: {
|
||
|
|
float_val: 0.8,
|
||
|
|
},
|
||
|
|
topK: {
|
||
|
|
int_val: 40,
|
||
|
|
},
|
||
|
|
maxOutputTokens: {
|
||
|
|
int_val: 1024,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
const result = formatGoogleInputs(input);
|
||
|
|
expect(JSON.stringify(result)).toEqual(JSON.stringify(expectedOutput));
|
||
|
|
});
|
||
|
|
|
||
|
|
it('formats real payload parts', () => {
|
||
|
|
const input = {
|
||
|
|
instances: [
|
||
|
|
{
|
||
|
|
context: 'context',
|
||
|
|
examples: [
|
||
|
|
{
|
||
|
|
input: {
|
||
|
|
author: 'user',
|
||
|
|
content: 'user input',
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
author: 'bot',
|
||
|
|
content: 'user output',
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
messages: [
|
||
|
|
{
|
||
|
|
author: 'user',
|
||
|
|
content: 'hi',
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
],
|
||
|
|
parameters: {
|
||
|
|
candidateCount: 1,
|
||
|
|
maxOutputTokens: 1024,
|
||
|
|
temperature: 0.2,
|
||
|
|
topP: 0.8,
|
||
|
|
topK: 40,
|
||
|
|
},
|
||
|
|
};
|
||
|
|
const expectedOutput = {
|
||
|
|
struct_val: {
|
||
|
|
instances: {
|
||
|
|
list_val: [
|
||
|
|
{
|
||
|
|
struct_val: {
|
||
|
|
context: { string_val: ['context'] },
|
||
|
|
examples: {
|
||
|
|
list_val: [
|
||
|
|
{
|
||
|
|
struct_val: {
|
||
|
|
input: {
|
||
|
|
struct_val: {
|
||
|
|
author: { string_val: ['user'] },
|
||
|
|
content: { string_val: ['user input'] },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
struct_val: {
|
||
|
|
author: { string_val: ['bot'] },
|
||
|
|
content: { string_val: ['user output'] },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
messages: {
|
||
|
|
list_val: [
|
||
|
|
{
|
||
|
|
struct_val: {
|
||
|
|
author: { string_val: ['user'] },
|
||
|
|
content: { string_val: ['hi'] },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
parameters: {
|
||
|
|
struct_val: {
|
||
|
|
candidateCount: { int_val: 1 },
|
||
|
|
maxOutputTokens: { int_val: 1024 },
|
||
|
|
temperature: { float_val: 0.2 },
|
||
|
|
topP: { float_val: 0.8 },
|
||
|
|
topK: { int_val: 40 },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
const result = formatGoogleInputs(input);
|
||
|
|
expect(JSON.stringify(result)).toEqual(JSON.stringify(expectedOutput));
|
||
|
|
});
|
||
|
|
|
||
|
|
it('helps create valid payload parts', () => {
|
||
|
|
const instances = {
|
||
|
|
context: 'context',
|
||
|
|
examples: [
|
||
|
|
{
|
||
|
|
input: {
|
||
|
|
author: 'user',
|
||
|
|
content: 'user input',
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
author: 'bot',
|
||
|
|
content: 'user output',
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
messages: [
|
||
|
|
{
|
||
|
|
author: 'user',
|
||
|
|
content: 'hi',
|
||
|
|
},
|
||
|
|
],
|
||
|
|
};
|
||
|
|
|
||
|
|
const expectedInstances = {
|
||
|
|
struct_val: {
|
||
|
|
context: { string_val: ['context'] },
|
||
|
|
examples: {
|
||
|
|
list_val: [
|
||
|
|
{
|
||
|
|
struct_val: {
|
||
|
|
input: {
|
||
|
|
struct_val: {
|
||
|
|
author: { string_val: ['user'] },
|
||
|
|
content: { string_val: ['user input'] },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
struct_val: {
|
||
|
|
author: { string_val: ['bot'] },
|
||
|
|
content: { string_val: ['user output'] },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
messages: {
|
||
|
|
list_val: [
|
||
|
|
{
|
||
|
|
struct_val: {
|
||
|
|
author: { string_val: ['user'] },
|
||
|
|
content: { string_val: ['hi'] },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
const parameters = {
|
||
|
|
candidateCount: 1,
|
||
|
|
maxOutputTokens: 1024,
|
||
|
|
temperature: 0.2,
|
||
|
|
topP: 0.8,
|
||
|
|
topK: 40,
|
||
|
|
};
|
||
|
|
const expectedParameters = {
|
||
|
|
struct_val: {
|
||
|
|
candidateCount: { int_val: 1 },
|
||
|
|
maxOutputTokens: { int_val: 1024 },
|
||
|
|
temperature: { float_val: 0.2 },
|
||
|
|
topP: { float_val: 0.8 },
|
||
|
|
topK: { int_val: 40 },
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
const instancesResult = formatGoogleInputs(instances);
|
||
|
|
const parametersResult = formatGoogleInputs(parameters);
|
||
|
|
expect(JSON.stringify(instancesResult)).toEqual(JSON.stringify(expectedInstances));
|
||
|
|
expect(JSON.stringify(parametersResult)).toEqual(JSON.stringify(expectedParameters));
|
||
|
|
});
|
||
|
|
});
|