Skip to content

Commit

Permalink
refactor: reuse models from core
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhongpinWang committed Sep 16, 2024
1 parent f9b490a commit 5962004
Show file tree
Hide file tree
Showing 10 changed files with 79 additions and 64 deletions.
7 changes: 7 additions & 0 deletions packages/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@ export type {
export { executeRequest } from './http-client.js';
export { getAiCoreDestination } from './context.js';
export { OpenApiRequestBuilder } from './openapi-request-builder.js';
export {
AzureOpenAiChatModel,
AzureOpenAiEmbeddingModel,
GcpVertexAiChatModel,
AwsBedrockChatModel,
AicoreOpensourceChatModel
} from './model-types.js';
1 change: 1 addition & 0 deletions packages/core/src/internal.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from './context.js';
export * from './http-client.js';
export * from './openapi-request-builder.js';
export * from './model-types.js';
44 changes: 44 additions & 0 deletions packages/core/src/model-types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);

/**
* Azure OpenAI models for chat completion.
*/
export type AzureOpenAiChatModel = LiteralUnion<
| 'gpt-4o-mini'
| 'gpt-4o'
| 'gpt-4'
| 'gpt-4-32k'
| 'gpt-35-turbo'
| 'gpt-35-turbo-16k'
>;

/**
* Azure OpenAI models for embedding.
*/
export type AzureOpenAiEmbeddingModel = LiteralUnion<
'text-embedding-ada-002' | 'text-embedding-3-small' | 'text-embedding-3-large'
>;

/**
* GCP Vertex AI models for chat completion.
*/
export type GcpVertexAiChatModel = LiteralUnion<
'gemini-1.0-pro' | 'gemini-1.5-pro' | 'gemini-1.5-flash'
>;

/**
* AWS Bedrock models for chat completion.
*/
export type AwsBedrockChatModel = LiteralUnion<
| 'anthropic--claude-3-haiku'
| 'anthropic--claude-3-opus'
| 'anthropic--claude-3-sonnet'
| 'anthropic--claude-3.5-sonnet'
>;

/**
* Aicore Opensource models for chat completion.
*/
export type AicoreOpensourceChatModel = LiteralUnion<
'mistralai--mixtral-8x7b-instruct-v01' | 'meta--llama3-70b-instruct'
>;
2 changes: 1 addition & 1 deletion packages/foundation-models/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ export {
export {
AzureOpenAiChatModel,
AzureOpenAiEmbeddingModel
} from './model-types.js';
} from './openai/model-types.js';
20 changes: 0 additions & 20 deletions packages/foundation-models/src/model-types.ts

This file was deleted.

14 changes: 14 additions & 0 deletions packages/foundation-models/src/openai/model-types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type {
AzureOpenAiChatModel as CoreAzureOpenAiChatModel,
AzureOpenAiEmbeddingModel as CoreAzureOpenAiEmbeddingModel
} from '@sap-ai-sdk/core';

/**
* Azure OpenAI models for chat completion.
*/
export type AzureOpenAiChatModel = CoreAzureOpenAiChatModel;

/**
* Azure OpenAI models for embedding.
*/
export type AzureOpenAiEmbeddingModel = CoreAzureOpenAiEmbeddingModel;
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
getDeploymentId,
type ModelDeployment
} from '@sap-ai-sdk/ai-api/internal.js';
import type { AzureOpenAiChatModel } from '../model-types.js';
import type { AzureOpenAiChatModel } from './model-types.js';
import type { OpenAiChatCompletionParameters } from './openai-types.js';
import { OpenAiChatCompletionResponse } from './openai-response.js';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
getDeploymentId,
type ModelDeployment
} from '@sap-ai-sdk/ai-api/internal.js';
import type { AzureOpenAiEmbeddingModel } from '../model-types.js';
import type { AzureOpenAiEmbeddingModel } from './model-types.js';
import type {
OpenAiEmbeddingParameters,
OpenAiEmbeddingOutput
Expand Down
8 changes: 1 addition & 7 deletions packages/orchestration/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,4 @@ export { azureContentFilter } from './orchestration-filter-utility.js';

export { OrchestrationResponse } from './orchestration-response.js';

export type {
AzureOpenAiChatModel,
AicoreOpensourceChatModel,
GcpVertexAiChatModel,
AwsBedrockChatModel,
ChatModel
} from './model-types.js';
export type { ChatModel } from './model-types.js';
43 changes: 9 additions & 34 deletions packages/orchestration/src/model-types.ts
Original file line number Diff line number Diff line change
@@ -1,42 +1,17 @@
type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);

/**
* Azure OpenAI models for chat completion.
*/
export type AzureOpenAiChatModel = LiteralUnion<
'gpt-4o' | 'gpt-4' | 'gpt-4-32k' | 'gpt-35-turbo' | 'gpt-35-turbo-16k'
>;

/**
* GCP Vertex AI models for chat completion.
*/
export type GcpVertexAiChatModel = LiteralUnion<
'gemini-1.0-pro' | 'gemini-1.5-pro' | 'gemini-1.5-flash'
>;

/**
* AWS Bedrock models for chat completion.
*/
export type AwsBedrockChatModel = LiteralUnion<
| 'anthropic--claude-3-haiku'
| 'anthropic--claude-3-opus'
| 'anthropic--claude-3-sonnet'
| 'anthropic--claude-3.5-sonnet'
>;

/**
* Aicore Opensource models for chat completion.
*/
export type AicoreOpensourceChatModel = LiteralUnion<
'mistralai--mixtral-8x7b-instruct-v01' | 'meta--llama3-70b-instruct'
>;
import {
AicoreOpensourceChatModel,
AwsBedrockChatModel,
AzureOpenAiChatModel,
GcpVertexAiChatModel
} from '@sap-ai-sdk/core';

/**
* Supported chat models for orchestration.
*/
export type ChatModel = LiteralUnion<
export type ChatModel = Exclude<
| AzureOpenAiChatModel
| GcpVertexAiChatModel
| AwsBedrockChatModel
| AicoreOpensourceChatModel
| AicoreOpensourceChatModel,
'gpt-4o-mini'
>;

0 comments on commit 5962004

Please sign in to comment.