Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/ai/DatabaseCR.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ describe('DatabaseCR', () => {
test('should set required PostgreSQL extensions', () => {
const dbCR = new DatabaseCR('team-123', 'test-kb', 'cluster-name')

expect(dbCR.spec.extensions).toEqual([{ name: 'pgvector' }, { name: 'pg_stat_statements' }])
expect(dbCR.spec.extensions).toEqual([{ name: 'vector' }, { name: 'pg_stat_statements' }])
})

test('should use environment variable for owner', () => {
Expand Down
2 changes: 1 addition & 1 deletion src/ai/DatabaseCR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export class DatabaseCR {
name: knowledgeBaseName,
owner: env.DB_OWNER,
cluster: { name: clusterName },
extensions: [{ name: 'pgvector' }, { name: 'pg_stat_statements' }],
extensions: [{ name: 'vector' }, { name: 'pg_stat_statements' }],
}
}

Expand Down
16 changes: 9 additions & 7 deletions src/ai/aiModelHandler.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { V1Deployment } from '@kubernetes/client-node'
import { transformK8sDeploymentToAplAIModel, getAIModels } from './aiModelHandler'
import { getAIModels, transformK8sDeploymentToAplAIModel } from './aiModelHandler'
import * as k8s from './k8s'

// Mock the k8s module
Expand All @@ -14,7 +14,9 @@ describe('aiModelHandler', () => {
name: 'gpt-4-deployment',
namespace: 'ai-models',
labels: {
app: 'gpt-4',
modelName: 'gpt-4',
modelNameTitle: 'GPT-4o-mini',
modelType: 'foundation',
modelDimension: '1536',
},
Expand Down Expand Up @@ -55,8 +57,8 @@ describe('aiModelHandler', () => {
name: 'gpt-4',
},
spec: {
displayName: 'gpt-4',
modelEndpoint: 'http://gpt-4-deployment.ai-models.svc.cluster.local',
displayName: 'GPT-4o-mini',
modelEndpoint: 'http://gpt-4.ai-models.svc.cluster.local/openai/v1',
modelType: 'foundation',
modelDimension: 1536,
},
Expand Down Expand Up @@ -98,7 +100,7 @@ describe('aiModelHandler', () => {
const result = transformK8sDeploymentToAplAIModel(deploymentWithModelName)

expect(result.metadata.name).toBe('custom-model-name')
expect(result.spec.displayName).toBe('custom-model-name')
expect(result.spec.displayName).toBe('GPT-4o-mini')
})

test('should use modelName from labels when deployment name is missing', () => {
Expand All @@ -117,7 +119,7 @@ describe('aiModelHandler', () => {
const result = transformK8sDeploymentToAplAIModel(deploymentWithoutName)

expect(result.metadata.name).toBe('custom-model-name')
expect(result.spec.displayName).toBe('custom-model-name')
expect(result.spec.displayName).toBe('GPT-4o-mini')
})

test('should handle deployment without labels', () => {
Expand Down Expand Up @@ -164,7 +166,7 @@ describe('aiModelHandler', () => {

const result = transformK8sDeploymentToAplAIModel(deploymentWithoutNamespace)

expect(result.spec.modelEndpoint).toBe('http://test-deployment.undefined.svc.cluster.local')
expect(result.spec.modelEndpoint).toBe('http://gpt-4.undefined.svc.cluster.local/openai/v1')
})

test('should handle deployment without status conditions', () => {
Expand Down Expand Up @@ -232,7 +234,7 @@ describe('aiModelHandler', () => {
const result = transformK8sDeploymentToAplAIModel(deploymentWithoutMetadata)

expect(result.metadata.name).toBe('')
expect(result.spec.modelEndpoint).toBe('http://undefined.undefined.svc.cluster.local')
expect(result.spec.modelEndpoint).toBe('http://.undefined.svc.cluster.local/openai/v1')
})
})

Expand Down
6 changes: 4 additions & 2 deletions src/ai/aiModelHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ function getConditions(deployment: V1Deployment) {
export function transformK8sDeploymentToAplAIModel(deployment: V1Deployment): AplAIModelResponse {
const labels = deployment.metadata?.labels || {}
const modelName = labels.modelName || deployment.metadata?.name || ''
const modelNameTitle = labels.modelNameTitle || deployment.metadata?.name || ''
const endpointName = labels.app || deployment.metadata?.name || ''

// Convert K8s deployment conditions to schema format
const conditions = getConditions(deployment)
Expand All @@ -25,8 +27,8 @@ export function transformK8sDeploymentToAplAIModel(deployment: V1Deployment): Ap
name: modelName,
},
spec: {
displayName: modelName,
modelEndpoint: `http://${deployment.metadata?.name}.${deployment.metadata?.namespace}.svc.cluster.local`,
displayName: modelNameTitle,
modelEndpoint: `http://${endpointName}.${deployment.metadata?.namespace}.svc.cluster.local/openai/v1`,
modelType: labels.modelType as 'foundation' | 'embedding',
...(labels.modelDimension && { modelDimension: parseInt(labels.modelDimension, 10) }),
},
Expand Down
2 changes: 1 addition & 1 deletion src/validators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ export const GIT_PUSH_RETRIES = num({
})
export const PIPELINE_NAME = str({
desc: 'The name of the current pipeline',
default: 'doc-ingestion-pipeline',
default: 'doc-ingest-pipeline',
})
export const KNOWLEDGE_BASE_API_VERSION = str({
desc: 'The API version for AkamaiKnowledgeBase custom resources',
Expand Down
Loading