Skip to content

Commit

Permalink
Rename model specification export to ai/spec. (#1237)
Browse files Browse the repository at this point in the history
  • Loading branch information
lgrammel authored Mar 27, 2024
1 parent 98b144f commit cf8d12f
Show file tree
Hide file tree
Showing 69 changed files with 54 additions and 61 deletions.
5 changes: 5 additions & 0 deletions .changeset/smart-nails-doubt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ai': patch
---

Export experimental language model specification under `ai/spec`.
2 changes: 1 addition & 1 deletion packages/core/core/generate-object/generate-object.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
LanguageModelV1FinishReason,
NoTextGeneratedError,
safeParseJSON,
} from '../../ai-model-specification';
} from '../../spec';
import { TokenUsage, calculateTokenUsage } from '../generate-text/token-usage';
import { CallSettings } from '../prompt/call-settings';
import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
Expand Down
2 changes: 1 addition & 1 deletion packages/core/core/generate-object/stream-object.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
LanguageModelV1CallOptions,
LanguageModelV1CallWarning,
LanguageModelV1StreamPart,
} from '../../ai-model-specification';
} from '../../spec';
import { CallSettings } from '../prompt/call-settings';
import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
import { getInputFormat } from '../prompt/get-input-format';
Expand Down
2 changes: 1 addition & 1 deletion packages/core/core/generate-text/generate-text.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
LanguageModelV1,
LanguageModelV1CallWarning,
LanguageModelV1FinishReason,
} from '../../ai-model-specification';
} from '../../spec';
import { CallSettings } from '../prompt/call-settings';
import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
import { getInputFormat } from '../prompt/get-input-format';
Expand Down
5 changes: 1 addition & 4 deletions packages/core/core/generate-text/run-tools-transformation.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
LanguageModelV1StreamPart,
NoSuchToolError,
} from '../../ai-model-specification';
import { LanguageModelV1StreamPart, NoSuchToolError } from '../../spec';
import { generateId } from '../../shared/generate-id';
import { ExperimentalTool } from '../tool';
import { TextStreamPart } from './stream-text';
Expand Down
7 changes: 2 additions & 5 deletions packages/core/core/generate-text/stream-text.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import zodToJsonSchema from 'zod-to-json-schema';
import { LanguageModelV1FinishReason } from '../../ai-model-specification';
import {
LanguageModelV1,
LanguageModelV1CallWarning,
} from '../../ai-model-specification/index';
import { LanguageModelV1FinishReason } from '../../spec';
import { LanguageModelV1, LanguageModelV1CallWarning } from '../../spec/index';
import {
AIStreamCallbacksAndOptions,
createCallbacksTransformer,
Expand Down
2 changes: 1 addition & 1 deletion packages/core/core/generate-text/tool-call.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
LanguageModelV1FunctionToolCall,
NoSuchToolError,
safeParseJSON,
} from '../../ai-model-specification';
} from '../../spec';
import { ExperimentalTool } from '../tool';
import { ValueOf } from '../util/value-of';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
LanguageModelV1Message,
LanguageModelV1Prompt,
LanguageModelV1TextPart,
} from '../../ai-model-specification';
} from '../../spec';
import { convertDataContentToUint8Array } from './data-content';
import { Prompt } from './prompt';

Expand Down
2 changes: 1 addition & 1 deletion packages/core/core/prompt/data-content.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {
InvalidDataContentError,
convertBase64ToUint8Array,
convertUint8ArrayToBase64,
} from '../../ai-model-specification';
} from '../../spec';

/**
* Data content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer.
Expand Down
2 changes: 1 addition & 1 deletion packages/core/core/prompt/prepare-call-settings.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CallSettings } from './call-settings';
import { InvalidArgumentError } from '../../ai-model-specification';
import { InvalidArgumentError } from '../../spec';

/**
* Validates call settings and sets default values.
Expand Down
2 changes: 1 addition & 1 deletion packages/core/core/test/mock-language-model-v1.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LanguageModelV1 } from '../../ai-model-specification/index';
import { LanguageModelV1 } from '../../spec/index';

export class MockLanguageModelV1 implements LanguageModelV1 {
readonly specificationVersion = 'v1';
Expand Down
6 changes: 1 addition & 5 deletions packages/core/core/util/retry-with-exponential-backoff.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import {
APICallError,
RetryError,
getErrorMessage,
} from '../../ai-model-specification';
import { APICallError, RetryError, getErrorMessage } from '../../spec';
import { delay } from './delay';

export type RetryFunction = <OUTPUT>(
Expand Down
5 changes: 1 addition & 4 deletions packages/core/mistral/convert-to-mistral-chat-messages.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
LanguageModelV1Prompt,
UnsupportedFunctionalityError,
} from '../ai-model-specification';
import { LanguageModelV1Prompt, UnsupportedFunctionalityError } from '../spec';
import { MistralChatPrompt } from './mistral-chat-prompt';

export function convertToMistralChatMessages({
Expand Down
2 changes: 1 addition & 1 deletion packages/core/mistral/map-mistral-finish-reason.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LanguageModelV1FinishReason } from '../ai-model-specification';
import { LanguageModelV1FinishReason } from '../spec';

export function mapMistralFinishReason(
finishReason: string | null | undefined,
Expand Down
8 changes: 4 additions & 4 deletions packages/core/mistral/mistral-chat-language-model.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import zodToJsonSchema from 'zod-to-json-schema';
import { LanguageModelV1Prompt } from '../ai-model-specification';
import { convertStreamToArray } from '../ai-model-specification/test/convert-stream-to-array';
import { JsonTestServer } from '../ai-model-specification/test/json-test-server';
import { StreamingTestServer } from '../ai-model-specification/test/streaming-test-server';
import { LanguageModelV1Prompt } from '../spec';
import { convertStreamToArray } from '../spec/test/convert-stream-to-array';
import { JsonTestServer } from '../spec/test/json-test-server';
import { StreamingTestServer } from '../spec/test/streaming-test-server';
import { Mistral } from './mistral-facade';
import { z } from 'zod';

Expand Down
2 changes: 1 addition & 1 deletion packages/core/mistral/mistral-chat-language-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
createEventSourceResponseHandler,
createJsonResponseHandler,
postJsonToApi,
} from '../ai-model-specification';
} from '../spec';
import { convertToMistralChatMessages } from './convert-to-mistral-chat-messages';
import { mapMistralFinishReason } from './map-mistral-finish-reason';
import {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/mistral/mistral-error.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { z } from 'zod';
import { createJsonErrorResponseHandler } from '../ai-model-specification';
import { createJsonErrorResponseHandler } from '../spec';

const mistralErrorDataSchema = z.object({
object: z.literal('error'),
Expand Down
2 changes: 1 addition & 1 deletion packages/core/mistral/mistral-facade.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { generateId, loadApiKey } from '../ai-model-specification';
import { generateId, loadApiKey } from '../spec';
import { MistralChatLanguageModel } from './mistral-chat-language-model';
import {
MistralChatModelId,
Expand Down
5 changes: 1 addition & 4 deletions packages/core/openai/convert-to-openai-chat-messages.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
LanguageModelV1Prompt,
convertUint8ArrayToBase64,
} from '../ai-model-specification';
import { LanguageModelV1Prompt, convertUint8ArrayToBase64 } from '../spec';
import { OpenAIChatPrompt } from './openai-chat-prompt';

export function convertToOpenAIChatMessages(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {
InvalidPromptError,
LanguageModelV1Prompt,
UnsupportedFunctionalityError,
} from '../ai-model-specification';
} from '../spec';

export function convertToOpenAICompletionPrompt({
prompt,
Expand Down
2 changes: 1 addition & 1 deletion packages/core/openai/map-openai-finish-reason.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LanguageModelV1FinishReason } from '../ai-model-specification';
import { LanguageModelV1FinishReason } from '../spec';

export function mapOpenAIFinishReason(
finishReason: string | null | undefined,
Expand Down
8 changes: 4 additions & 4 deletions packages/core/openai/openai-chat-language-model.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { z } from 'zod';
import zodToJsonSchema from 'zod-to-json-schema';
import { LanguageModelV1Prompt } from '../ai-model-specification';
import { convertStreamToArray } from '../ai-model-specification/test/convert-stream-to-array';
import { JsonTestServer } from '../ai-model-specification/test/json-test-server';
import { StreamingTestServer } from '../ai-model-specification/test/streaming-test-server';
import { LanguageModelV1Prompt } from '../spec';
import { convertStreamToArray } from '../spec/test/convert-stream-to-array';
import { JsonTestServer } from '../spec/test/json-test-server';
import { StreamingTestServer } from '../spec/test/streaming-test-server';
import { OpenAI } from './openai-facade';

const TEST_PROMPT: LanguageModelV1Prompt = [
Expand Down
2 changes: 1 addition & 1 deletion packages/core/openai/openai-chat-language-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
isParseableJson,
postJsonToApi,
scale,
} from '../ai-model-specification';
} from '../spec';
import { convertToOpenAIChatMessages } from './convert-to-openai-chat-messages';
import { mapOpenAIFinishReason } from './map-openai-finish-reason';
import { OpenAIChatModelId, OpenAIChatSettings } from './openai-chat-settings';
Expand Down
8 changes: 4 additions & 4 deletions packages/core/openai/openai-completion-language-model.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { LanguageModelV1Prompt } from '../ai-model-specification';
import { convertStreamToArray } from '../ai-model-specification/test/convert-stream-to-array';
import { JsonTestServer } from '../ai-model-specification/test/json-test-server';
import { StreamingTestServer } from '../ai-model-specification/test/streaming-test-server';
import { LanguageModelV1Prompt } from '../spec';
import { convertStreamToArray } from '../spec/test/convert-stream-to-array';
import { JsonTestServer } from '../spec/test/json-test-server';
import { StreamingTestServer } from '../spec/test/streaming-test-server';
import { OpenAI } from './openai-facade';

const TEST_PROMPT: LanguageModelV1Prompt = [
Expand Down
2 changes: 1 addition & 1 deletion packages/core/openai/openai-completion-language-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
createJsonResponseHandler,
postJsonToApi,
scale,
} from '../ai-model-specification';
} from '../spec';
import { convertToOpenAICompletionPrompt } from './convert-to-openai-completion-prompt';
import { mapOpenAIFinishReason } from './map-openai-finish-reason';
import {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/openai/openai-error.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { z } from 'zod';
import { createJsonErrorResponseHandler } from '../ai-model-specification';
import { createJsonErrorResponseHandler } from '../spec';

const openAIErrorDataSchema = z.object({
error: z.object({
Expand Down
2 changes: 1 addition & 1 deletion packages/core/openai/openai-facade.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { loadApiKey } from '../ai-model-specification';
import { loadApiKey } from '../spec';
import { OpenAIChatLanguageModel } from './openai-chat-language-model';
import { OpenAIChatModelId, OpenAIChatSettings } from './openai-chat-settings';
import { OpenAICompletionLanguageModel } from './openai-completion-language-model';
Expand Down
14 changes: 7 additions & 7 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
"solid/dist/**/*",
"prompts/dist/**/*",
"rsc/dist/**/*",
"ai-model-specification/dist/**/*",
"spec/dist/**/*",
"openai/dist/**/*",
"mistral/dist/**/*"
],
"scripts": {
"build": "tsup && cat react/dist/index.server.d.ts >> react/dist/index.d.ts",
"clean": "rm -rf dist && rm -rf core/dist && rm -rf openai/dist && rm -rf mistral/dist && rm -rf ai-model-specification/dist && rm -rf react/dist && rm -rf svelte/dist && rm -rf vue/dist && rm -rf solid/dist && rm -rf rsc/dist",
"clean": "rm -rf dist && rm -rf core/dist && rm -rf openai/dist && rm -rf mistral/dist && rm -rf spec/dist && rm -rf react/dist && rm -rf svelte/dist && rm -rf vue/dist && rm -rf solid/dist && rm -rf rsc/dist",
"dev": "tsup --watch",
"lint": "eslint \"./**/*.ts*\"",
"type-check": "tsc --noEmit",
Expand Down Expand Up @@ -48,11 +48,11 @@
"import": "./dist/index.mjs",
"require": "./dist/index.js"
},
"./ai-model-specification": {
"types": "./ai-model-specification/dist/index.d.ts",
"import": "./ai-model-specification/dist/index.mjs",
"module": "./ai-model-specification/dist/index.mjs",
"require": "./ai-model-specification/dist/index.js"
"./spec": {
"types": "./spec/dist/index.d.ts",
"import": "./spec/dist/index.mjs",
"module": "./spec/dist/index.mjs",
"require": "./spec/dist/index.js"
},
"./openai": {
"types": "./openai/dist/index.d.ts",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ import { LanguageModelV1CallWarning } from './language-model-v1-call-warning';
import { LanguageModelV1FinishReason } from './language-model-v1-finish-reason';
import { LanguageModelV1FunctionToolCall } from './language-model-v1-function-tool-call';

/**
* Experimental: Specification for a language model that implements the language model
* interface version 1.
*/
export type LanguageModelV1 = {
/**
* The language model must specify which language model interface
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions packages/core/tsup.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ export default defineConfig([
},
// AI Core: Model Specification
{
entry: ['ai-model-specification/index.ts'],
entry: ['spec/index.ts'],
format: ['cjs', 'esm'],
outDir: 'ai-model-specification/dist',
outDir: 'spec/dist',
dts: true,
sourcemap: true,
},
Expand Down

0 comments on commit cf8d12f

Please sign in to comment.