Skip to content

Commit

Permalink
export mappers + bump version
Browse files Browse the repository at this point in the history
  • Loading branch information
loveirobert committed Jul 8, 2024
1 parent 2fea189 commit 7fbd26c
Show file tree
Hide file tree
Showing 10 changed files with 82 additions and 65 deletions.
2 changes: 1 addition & 1 deletion modules/azure-openai/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@one-beyond-ai/azure-openai",
"version": "0.1.52",
"version": "0.1.53",
"dependencies": {
"@azure/openai": "^1.0.0-beta.11",
"@one-beyond-ai/common": "*"
Expand Down
2 changes: 1 addition & 1 deletion modules/common/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@one-beyond-ai/common",
"version": "0.1.52",
"version": "0.1.53",
"dependencies": {
"tslib": "^2.3.0"
},
Expand Down
2 changes: 1 addition & 1 deletion modules/cost/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@one-beyond-ai/cost",
"version": "0.1.52",
"version": "0.1.53",
"dependencies": {
"@one-beyond-ai/common": "*"
},
Expand Down
2 changes: 1 addition & 1 deletion modules/embed/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@one-beyond-ai/embed",
"version": "0.1.52",
"version": "0.1.53",
"main": "./index.js",
"module": "./index.mjs",
"typings": "./index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion modules/openai/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@one-beyond-ai/openai",
"version": "0.1.52",
"version": "0.1.53",
"dependencies": {
"openai": "^4.29.2",
"@one-beyond-ai/common": "*"
Expand Down
1 change: 1 addition & 0 deletions modules/openai/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export * from './lib/openai';
export * from './lib/mappers';
122 changes: 69 additions & 53 deletions modules/openai/src/lib/mappers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,137 +4,153 @@ import {
ChatCompletionMessage,
ChatCompletionMessageParam,
ChatCompletionSystemMessageParam,
ChatCompletionChunk
} from "openai/src/resources/chat/completions";
ChatCompletionChunk,
} from 'openai/src/resources/chat/completions';
import {
AudioTranscriptionResultVerboseJson,
ChatCompletionOptions,
ChatRequestAssistantMessage, ChatRequestFunctionMessage,
ChatRequestAssistantMessage,
ChatRequestFunctionMessage,
ChatRequestMessage,
ChatRequestSystemMessage, ChatRequestToolMessage,
ChatRequestUserMessage, ChatResponseMessage, ChatRole, ChatRoles, CompletionUsage, EmbeddingUsage,
ChatRequestSystemMessage,
ChatRequestToolMessage,
ChatRequestUserMessage,
ChatResponseMessage,
ChatRole,
ChatRoles,
CompletionUsage,
EmbeddingUsage,
FunctionCall,
FunctionType
} from "@one-beyond-ai/common";

import { CompletionUsage as OpenAICompletionUsage } from "openai/src/resources/completions";
import { CreateEmbeddingResponse } from "openai/src/resources/embeddings";
import { ChatCompletionMessageToolCall } from "openai/resources";
FunctionType,
} from '@one-beyond-ai/common';

import { CompletionUsage as OpenAICompletionUsage } from 'openai/src/resources/completions';
import { CreateEmbeddingResponse } from 'openai/src/resources/embeddings';
import { ChatCompletionMessageToolCall } from 'openai/resources';

export const mapChatRequestSystemMessage = (message: ChatRequestSystemMessage): ChatCompletionSystemMessageParam => {
return {
role: "system",
role: 'system',
content: message.content,
name: message.name,
};
}
};

export const mapChatRequestUserMessage = (message: ChatRequestUserMessage): ChatCompletionMessageParam => {
return {
role: "user",
role: 'user',
content: message.content,
name: message.name,
};
}
};

export const mapChatRequestAssistantMessage = (message: ChatRequestAssistantMessage): ChatCompletionMessageParam => {
return {
role: "assistant",
role: 'assistant',
content: message.content,
name: message.name,
function_call: message?.functionCall,
tool_calls: message?.toolCalls,
};
}
};

export const mapChatRequestFunctionMessage = (message: ChatRequestFunctionMessage): ChatCompletionMessageParam => {
return {
role: "function",
role: 'function',
content: message.content,
name: message.name,
};
}
};

export const mapChatRequestToolMessage = (message: ChatRequestToolMessage): ChatCompletionMessageParam => {
return {
role: "tool",
role: 'tool',
content: message.content,
tool_call_id: message.toolCallId,
};
}
};

export const mapChatRequestMessages = (messages: ChatRequestMessage[]): ChatCompletionMessageParam[] => {
return messages.map((message) => {
switch (message.role) {
case "system":
case 'system':
return mapChatRequestSystemMessage(message);
case "user":
case 'user':
return mapChatRequestUserMessage(message);
case "assistant":
case 'assistant':
return mapChatRequestAssistantMessage(message);
case "function":
case 'function':
return mapChatRequestFunctionMessage(message);
case "tool":
case 'tool':
return mapChatRequestToolMessage(message);
}
});
}
};

export const mapUsage = (usage?: OpenAICompletionUsage): CompletionUsage => {
return {
completionTokens: usage?.completion_tokens ?? 0,
promptTokens: usage?.prompt_tokens ?? 0,
totalTokens: usage?.total_tokens ?? 0
totalTokens: usage?.total_tokens ?? 0,
};
}
};

export const mapRole = (role?: string): ChatRole => {
if (ChatRoles.includes(role as ChatRole)) return role as ChatRole;
return "assistant";
}
return 'assistant';
};

export const mapFunctionCall = (functionCall?: ChatCompletionChunk.Choice.Delta.FunctionCall | ChatCompletionMessage["function_call"]): ChatResponseMessage["functionCall"] => {
export const mapFunctionCall = (
functionCall?: ChatCompletionChunk.Choice.Delta.FunctionCall | ChatCompletionMessage['function_call']
): ChatResponseMessage['functionCall'] => {
return {
name: functionCall?.name || "",
arguments: functionCall?.arguments || "",
}
}
name: functionCall?.name || '',
arguments: functionCall?.arguments || '',
};
};

export const mapCompletionResponseMessage = (message?: ChatCompletionMessage | ChatCompletionChunk.Choice.Delta): ChatResponseMessage | undefined => {
export const mapCompletionResponseMessage = (
message?: ChatCompletionMessage | ChatCompletionChunk.Choice.Delta
): ChatResponseMessage | undefined => {
if (!message) {
return undefined;
}
return {
role: mapRole(message.role),
content: message?.content || null,
functionCall: mapFunctionCall(message?.function_call),
toolCalls: (message?.tool_calls ?? []).map((toolCall: ChatCompletionMessageToolCall |ChatCompletionChunk.Choice.Delta.ToolCall) => ({
id: toolCall?.id || "",
type: FunctionType.FUNCTION,
function: mapFunctionCall(toolCall.function) as FunctionCall,
})),
toolCalls: (message?.tool_calls ?? []).map(
(toolCall: ChatCompletionMessageToolCall | ChatCompletionChunk.Choice.Delta.ToolCall) => ({
id: toolCall?.id || '',
type: FunctionType.FUNCTION,
function: mapFunctionCall(toolCall.function) as FunctionCall,
})
),
};
}
};

export const mapEmbeddingUsage = (usage: CreateEmbeddingResponse.Usage): EmbeddingUsage => {
return {
promptTokens: usage.prompt_tokens,
totalTokens: usage.total_tokens,
}
}
};
};

export const mapResponseFormat = (responseFormat?: ChatCompletionOptions["responseFormat"]): ChatCompletionCreateParams.ResponseFormat | undefined => {
export const mapResponseFormat = (
responseFormat?: ChatCompletionOptions['responseFormat']
): ChatCompletionCreateParams.ResponseFormat | undefined => {
switch (responseFormat) {
case 'json':
return { type: 'json_object' };
case 'text':
return { type: 'text' };
}
return undefined;
}
};

export const mapChatCompletionOptions = (options?: ChatCompletionOptions): Omit<ChatCompletionCreateParams, "messages" | "model"> | undefined => {
export const mapChatCompletionOptions = (
options?: ChatCompletionOptions
): Omit<ChatCompletionCreateParams, 'messages' | 'model'> | undefined => {
if (!options) return;
return {
functions: options.functions,
Expand All @@ -153,8 +169,8 @@ export const mapChatCompletionOptions = (options?: ChatCompletionOptions): Omit<
tools: options.tools,
user: options.user,
seed: options.seed,
}
}
};
};

export const mapAudioTranscriptionResultVerboseJson = (response: any): AudioTranscriptionResultVerboseJson => {
return {
Expand All @@ -174,7 +190,7 @@ export const mapAudioTranscriptionResultVerboseJson = (response: any): AudioTran
noSpeechProb: segment.no_speech_prob,
tokens: segment.tokens,
seek: segment.seek,
}
};
}),
}
}
};
};
2 changes: 1 addition & 1 deletion modules/text-document-extractor/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@one-beyond-ai/text-document-extractor",
"version": "0.1.52",
"version": "0.1.53",
"dependencies": {
"langchain": "^0.1.26",
"mammoth": "^1.7.0",
Expand Down
2 changes: 1 addition & 1 deletion modules/tokenizer/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@one-beyond-ai/tokenizer",
"version": "0.1.52",
"version": "0.1.53",
"dependencies": {
"js-tiktoken": "^1.0.10",
"langchain": "^0.1.30",
Expand Down
10 changes: 5 additions & 5 deletions samples/one-beyond-ai-aws/infra/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@
"dependencies": {
"@aws-sdk/client-sns": "^3.556.0",
"@elastic/elasticsearch": "^8.13.1",
"@one-beyond-ai/azure-openai": "^0.1.52",
"@one-beyond-ai/common": "^0.1.52",
"@one-beyond-ai/embed": "^0.1.52",
"@one-beyond-ai/text-document-extractor": "^0.1.52",
"@one-beyond-ai/tokenizer": "^0.1.52",
"@one-beyond-ai/azure-openai": "^0.1.53",
"@one-beyond-ai/common": "^0.1.53",
"@one-beyond-ai/embed": "^0.1.53",
"@one-beyond-ai/text-document-extractor": "^0.1.53",
"@one-beyond-ai/tokenizer": "^0.1.53",
"@types/aws-lambda": "^8.10.137",
"aws-cdk-lib": "2.133.0",
"aws-sdk": "^2.1598.0",
Expand Down

0 comments on commit 7fbd26c

Please sign in to comment.