Model Profiles

Comprehensive guide to managing model profile configurations in the View platform.

Overview

Model Profiles manage associations between model configurations and model endpoints within the View platform. They provide centralized configuration for linking specific AI model settings with endpoint connections, enabling organized model management and streamlined AI model deployment across different environments.

Model Profiles are managed via the View server API and provide comprehensive associations between model configurations and endpoints, including profile naming, metadata, and active status management for optimal AI model organization and deployment.

Model Profile Object Structure

Model Profile objects contain comprehensive associations between model configurations and endpoints. Here's the complete structure:

{
  "GUID": "00000000-0000-0000-0000-000000000000",
  "TenantGUID": "00000000-0000-0000-0000-000000000000",
  "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000000",
  "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
  "Name": "Model profile for Ollama and all-minilm",
  "AdditionalData": "Description for Ollama and all-minilm",
  "Active": true,
  "CreatedUtc": "2025-10-08T19:39:59.160283Z"
}

Field Descriptions

  • GUID (GUID): Globally unique identifier for the model profile object
  • TenantGUID (GUID): Globally unique identifier for the tenant
  • ModelConfigurationGUID (GUID): Globally unique identifier for the associated model configuration
  • ModelEndpointGUID (GUID): Globally unique identifier for the associated model endpoint
  • Name (string): Display name for the model profile
  • AdditionalData (string): Additional metadata or description for the profile
  • Active (boolean): Whether the profile is currently active and available
  • CreatedUtc (datetime): Timestamp when the profile was created

Enumerate Model Profiles

Retrieves all model profiles for a tenant using GET /v2.0/tenants/[tenant-guid]/modelprofiles. Returns a JSON array containing all model profile associations.

Request Parameters

No additional parameters required beyond authentication.

Response

Returns an array of all model profiles for the tenant, or a 404 Not Found error if no profiles exist.

curl --location 'http://localhost:8000/v2.0/tenants/00000000-0000-0000-0000-000000000000/modelprofiles/' \
--header 'Authorization: ••••••'
import { ViewSdk } from "view-sdk";
const api = new ViewSdk(
  "[endpoint-url]", //endpoint
  "[tenant-guid]", //tenant Id
  "[access-key]" //access key
);
const enumerateModelProfiles = async () => {
  try {
    const response = await api.ModelProfile.enumerate();
    console.log(response, 'Model profiles fetched successfully');
  } catch (err) {
    console.log('Error fetching Model profiles:', err);
  }
};
enumerateModelProfiles();
import view_sdk
from view_sdk import configuration
from view_sdk.sdk_configuration import Service

sdk = view_sdk.configure(
    access_key="default",
    base_url="endpoint-url",
    tenant_guid="tenant-guid",
    service_ports={Service.DEFAULT: 8000},
)

def enumerateModelProfiles():
    """Enumerate all model profiles."""
    model_profiles = configuration.ModelProfile.enumerate()
    print("Enumerated ModelProfiles:")
    print(model_profiles)

enumerateModelProfiles()

Response

Returns an array of all model profiles:

{
    "Success": true,
    "Timestamp": {
        "Start": "2025-10-09T09:26:18.001794Z",
        "TotalMs": 10.27,
        "Messages": {}
    },
    "MaxResults": 1000,
    "Skip": 0,
    "IterationsRequired": 1,
    "EndOfResults": true,
    "TotalRecords": 2,
    "RecordsRemaining": 0,
    "Objects": [
        {
            "GUID": "00000000-0000-0000-0000-000000000000",
            "TenantGUID": "00000000-0000-0000-0000-000000000000",
            "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000000",
            "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
            "Name": "Model profile for Ollama and all-minilm",
            "AdditionalData": "Description for Ollama and all-minilm",
            "Active": true,
            "CreatedUtc": "2025-10-08T19:39:59.160283Z"
        },
        {
            "GUID": "00000000-0000-0000-0000-000000000001",
            "TenantGUID": "00000000-0000-0000-0000-000000000000",
            "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000001",
            "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
            "Name": "Model profile for Ollama and qwen2.5:3b",
            "AdditionalData": "Description for Ollama and qwen2.5:3b",
            "Active": true,
            "CreatedUtc": "2025-10-08T19:39:59.160283Z"
        }
    ]
}

Read All Model Profiles

Retrieves all model profiles for a tenant using GET /v1.0/tenants/[tenant-guid]/modelprofiles. Returns a JSON array containing all model profile associations with complete details.

Response

Returns an array of all model profiles for the tenant, or a 404 Not Found error if no profiles exist.

curl --location 'http://localhost:8000/v1.0/tenants/[tenant-guid]/modelprofiles' \
--header 'Authorization: [access-key]'
import { ViewSdk } from "view-sdk";

const api = new ViewSdk(
  "[endpoint-url]", //endpoint
  "[tenant-guid]", //tenant Id
  "[access-key]" //access key
);
const readAllModelProfiles = async () => {
  try {
    const response = await api.ModelProfile.readAll();
    console.log(response, 'All model profiles fetched successfully');
  } catch (err) {
    console.log('Error fetching All model profiles:', err);
  }
};
readAllModelProfiles();
import view_sdk
from view_sdk import configuration
from view_sdk.sdk_configuration import Service

sdk = view_sdk.configure(
    access_key="default",
    base_url="endpoint-url",
    tenant_guid="tenant-guid",
    service_ports={Service.DEFAULT: 8000},
)

def retrieveAllModelProfiles():
    """Retrieve all model profiles."""
    model_profiles = configuration.ModelProfile.retrieve_all()
    print("All ModelProfiles:")
    print(model_profiles)

retrieveAllModelProfiles()

Response

Returns an array of all model profiles with complete details:

[
  {
    "GUID": "00000000-0000-0000-0000-000000000000",
    "TenantGUID": "00000000-0000-0000-0000-000000000000",
    "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000000",
    "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
    "Name": "Model profile for Ollama and all-minilm",
    "AdditionalData": "Description for Ollama and all-minilm",
    "Active": true,
    "CreatedUtc": "2025-10-08T19:39:59.160283Z"
  },
  {
    "GUID": "11111111-1111-1111-1111-111111111111",
    "TenantGUID": "00000000-0000-0000-0000-000000000000",
    "ModelConfigurationGUID": "11111111-1111-1111-1111-111111111111",
    "ModelEndpointGUID": "11111111-1111-1111-1111-111111111111",
    "Name": "GPT-4 Profile with OpenAI Endpoint",
    "AdditionalData": "Production GPT-4 configuration with OpenAI API",
    "Active": true,
    "CreatedUtc": "2025-10-08T20:15:30.123456Z"
  }
]

Read Model Profile

Retrieves a specific model profile by GUID using GET /v1.0/tenants/[tenant-guid]/modelprofiles/[modelprofile-guid]. Returns the complete profile association with all details.

Request Parameters

  • modelprofile-guid (string, Path, Required): GUID of the model profile to retrieve

Response

Returns the model profile object with all association details if found, or a 404 Not Found error if the profile doesn't exist.

Note: The HEAD method can be used as an alternative to simply check the existence of the object. HEAD requests return either a 200 OK if the object exists, or a 404 Not Found if not. No response body is returned with a HEAD request.

curl --location 'http://localhost:8000/v1.0/tenants/[tenant-guid]/modelprofiles/[modelprofile-guid]' \
--header 'Authorization: [access-key]'
import { ViewSdk } from "view-sdk";

const api = new ViewSdk(
  "[endpoint-url]", //endpoint
  "[tenant-guid]", //tenant Id
  "[access-key]" //access key
);

const readModelProfile = async () => {
  try {
    const response = await api.ModelProfile.read('00000000-0000-0000-0000-000000000000');
    console.log(response, 'Model profile fetched successfully');
  } catch (err) {
    console.log('Error fetching Model profile:', err);
  }
};

readModelProfile();
import view_sdk
from view_sdk import configuration
from view_sdk.sdk_configuration import Service

sdk = view_sdk.configure(
    access_key="default",
    base_url="endpoint-url",
    tenant_guid="tenant-guid",
    service_ports={Service.DEFAULT: 8000},
)

def readModelProfile():
    """Retrieve a specific model profile by GUID."""
    model_profile = configuration.ModelProfile.retrieve(
        "modelprofile-guid"
    )
    print("Retrieved ModelProfile:")
    print(model_profile)

readModelProfile()

Response

Returns the complete model profile with association details:

{
  "GUID": "00000000-0000-0000-0000-000000000000",
  "TenantGUID": "00000000-0000-0000-0000-000000000000",
  "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000000",
  "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
  "Name": "Model profile for Ollama and all-minilm",
  "AdditionalData": "Description for Ollama and all-minilm",
  "Active": true,
  "CreatedUtc": "2025-10-08T19:39:59.160283Z"
}

Create Model Profile

Creates a new model profile using PUT /v1.0/tenants/[tenant-guid]/modelprofiles. Creates a new profile association with the specified parameters.

Request Parameters

  • ModelConfigurationGUID (GUID, Required): GUID of the model configuration to associate
  • ModelEndpointGUID (GUID, Required): GUID of the model endpoint to associate
  • Name (string, Required): Display name for the model profile
  • AdditionalData (string, Optional): Additional metadata or description
  • Active (boolean, Optional): Whether the profile is active (default: true)

Request Body

{
  "ModelConfigurationGUID": "22222222-2222-2222-2222-222222222222",
  "ModelEndpointGUID": "33333333-3333-3333-3333-333333333333",
  "Name": "Llama 2 Profile with Local Endpoint",
  "AdditionalData": "Local Llama 2 configuration with Ollama endpoint",
  "Active": true
}

Response

Returns the created model profile object with all association details, or a 400 Bad Request error if the request is invalid.

curl --location --request PUT 'http://localhost:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/modelprofiles' \
--header 'content-type: application/json' \
--header 'Authorization: ••••••' \
--data '{
    "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000000",
    "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
    "Name": "My model profile",
    "AdditionalData": "My open text field",
    "Active": true
}'
import { ViewSdk } from "view-sdk";

const api = new ViewSdk(
  "[endpoint-url]", //endpoint
  "[tenant-guid]", //tenant Id
  "[access-key]" //access key
);

const createModelProfile = async () => {
  try {
    const response = await api.ModelProfile.create({
      ModelConfigurationGUID: '00000000-0000-0000-0000-000000000000',
      ModelEndpointGUID: '00000000-0000-0000-0000-000000000000',
      Name: 'Model profile for Ollama and all-minilm',
      AdditionalData: 'Description for Ollama and all-minilm',
      Active: true,
    });
    console.log(response, 'Model profile created successfully');
  } catch (err) {
    console.log('Error creating Model profile:', err);
  }
};

createModelProfile();
import view_sdk
from view_sdk import configuration
from view_sdk.sdk_configuration import Service

sdk = view_sdk.configure(
    access_key="default",
    base_url="endpoint-url",
    tenant_guid="tenant-guid",
    service_ports={Service.DEFAULT: 8000},
)

def createModelProfile():
    """Create a new model profile."""
    model_profile = configuration.ModelProfile.create(
        ModelConfigurationGUID="modelconfig-guid",
        ModelEndpointGUID="modelendpoint-guid",
        Name="Demo Model Profile",
        AdditionalData="Demo model profile for testing",
        Active=True
    )
    print("Created ModelProfile:")
    print(model_profile)
    return model_profile

createModelProfile()

Response

Returns the created model profile with complete association details:

 {
   "GUID": "00000000-0000-0000-0000-000000000001",
   "TenantGUID": "00000000-0000-0000-0000-000000000000",
   "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000001",
   "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
   "Name": "Model profile for Ollama and qwen2.5:3b",
   "AdditionalData": "Description for Ollama and qwen2.5:3b",
   "Active": true,
   "CreatedUtc": "2025-10-08T19:39:59.160283Z"
 }

Update Model Profile

Updates an existing model profile using PUT /v1.0/tenants/[tenant-guid]/modelprofiles/[modelprofile-guid]. Modifies the profile association with the provided parameters.

Request Parameters

  • modelprofile-guid (string, Path, Required): GUID of the model profile to update

Request Body

{
    "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000000",
    "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
    "Name": "My model profile",
    "AdditionalData": "My open text field",
    "Active": true
}

Response

Returns the updated model profile object with all association details, or a 404 Not Found error if the profile doesn't exist.

curl --location --request PUT 'http://localhost:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/modelprofiles/00000000-0000-0000-0000-000000000000' \
--header 'content-type: application/json' \
--header 'Authorization: ••••••' \
--data '{
    "ModelConfigurationGUID": "00000000-0000-0000-0000-000000000000",
    "ModelEndpointGUID": "00000000-0000-0000-0000-000000000000",
    "Name": "My model profile",
    "AdditionalData": "My open text field",
    "Active": true
}'
import { ViewSdk } from "view-sdk";

const api = new ViewSdk(
  "[endpoint-url]", //endpoint
  "[tenant-guid]", //tenant Id
  "[access-key]" //access key
);

const updateModelProfile = async () => {
  try {
    const response = await api.ModelProfile.update({
      GUID: '1edeedff-67b3-43de-b8a2-f636de2620bc',
      TenantGUID: '00000000-0000-0000-0000-000000000000',
      ModelConfigurationGUID: '00000000-0000-0000-0000-000000000000',
      ModelEndpointGUID: '00000000-0000-0000-0000-000000000000',
      Name: 'Model profile for Ollama and all-minilm [UPDATED]',
      AdditionalData: 'Updated description for Ollama and all-minilm',
      Active: true,
      CreatedUtc: '2025-10-08T19:39:59.160283Z',
    });
    console.log(response, 'Model profile updated successfully');
  } catch (err) {
    console.log('Error updating Model profile:', err);
  }
};

updateModelProfile();
import view_sdk
from view_sdk import configuration
from view_sdk.sdk_configuration import Service

sdk = view_sdk.configure(
    access_key="default",
    base_url="endpoint-url",
    tenant_guid="tenant-guid",
    service_ports={Service.DEFAULT: 8000},
)

def updateModelProfile():
    """Update an existing model profile."""
    model_profile = configuration.ModelProfile.update(
        "modelprofile-guid",
        ModelConfigurationGUID="modelconfig-guid",
        Name="Demo Model Profile [Updated]",
        AdditionalData="Updated demo model profile for testing"
    )
    print("Updated ModelProfile:")
    print(model_profile)

updateModelProfile()

Response

Returns the updated model profile with complete association details:

{
  "GUID": "00000000-0000-0000-0000-000000000000",
  "TenantGUID": "00000000-0000-0000-0000-000000000000",
  "ModelConfigurationGUID": "55555555-5555-5555-5555-555555555555",
  "ModelEndpointGUID": "66666666-6666-6666-6666-666666666666",
  "Name": "Updated Llama 2 Profile",
  "AdditionalData": "Updated Llama 2 configuration with new endpoint",
  "Active": true,
  "CreatedUtc": "2025-10-08T19:39:59.160283Z"
}

Check Model Profile Existence

Checks whether a model profile exists using HEAD /v1.0/tenants/[tenant-guid]/modelprofiles/[modelprofile-guid]. Returns only HTTP status codes without response body for efficient existence verification.

Request Parameters

  • modelprofile-guid (string, Path, Required): GUID of the model profile to check

Response

  • 200 OK: Model profile exists
  • 404 Not Found: Model profile does not exist
  • No response body: Only HTTP status code is returned

Note: HEAD requests do not return a response body, only the HTTP status code indicating whether the model profile exists.

curl --location --head 'http://localhost:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/modelprofiles/00000000-0000-0000-0000-000000000000' \
--header 'Authorization: ••••••'
import { ViewSdk } from "view-sdk";

const api = new ViewSdk(
  "[endpoint-url]", //endpoint
  "[tenant-guid]", //tenant Id
  "[access-key]" //access key
);

const modelProfileExists = async () => {
  try {
    const response = await api.ModelProfile.exists('00000000-0000-0000-0000-000000000000');
    console.log(response, 'Model profile exists');
  } catch (err) {
    console.log('Error checking Model profile:', err);
  }
};

modelProfileExists();
import view_sdk
from view_sdk import configuration
from view_sdk.sdk_configuration import Service

sdk = view_sdk.configure(
    access_key="default",
    base_url="endpoint-url",
    tenant_guid="tenant-guid",
    service_ports={Service.DEFAULT: 8000},
)

def existsModelProfile():
    """Check if a model profile exists."""
    exists = configuration.ModelProfile.exists(
        "modelprofile-guid"
    )
    print("ModelProfile exists:")
    print(exists)

existsModelProfile()

Response

  • 200 No Content: Model profile exists
  • 404 Not Found: Model profile does not exist
  • No response body: Only HTTP status code is returned

Note: HEAD requests do not return a response body, only the HTTP status code indicating whether the model profile exists.

Delete Model Profile

Deletes a model profile by GUID using DELETE /v1.0/tenants/[tenant-guid]/modelprofiles/[modelprofile-guid]. Removes the profile association from the system.

Request Parameters

  • modelprofile-guid (string, Path, Required): GUID of the model profile to delete

Response

  • 200 OK: Model profile deleted successfully
  • 404 Not Found: Model profile does not exist

Note: Deleting a model profile removes it from the system permanently. This action cannot be undone.

curl --location --request DELETE 'http://localhost:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/modelprofiles/00000000-0000-0000-0000-000000000000' \
--header 'Authorization: ••••••'
import { ViewSdk } from "view-sdk";

const api = new ViewSdk(
  "[endpoint-url]", //endpoint
  "[tenant-guid]", //tenant Id
  "[access-key]" //access key
);

const deleteModelProfile = async () => {
  try {
    const response = await api.ModelProfile.delete('1edeedff-67b3-43de-b8a2-f636de2620bc');
    console.log(response, 'Model profile deleted successfully');
  } catch (err) {
    console.log('Error deleting Model profile:', err);
  }
};

deleteModelProfile();
import view_sdk
from view_sdk import configuration
from view_sdk.sdk_configuration import Service

sdk = view_sdk.configure(
    access_key="default",
    base_url="endpoint-url",
    tenant_guid="tenant-guid",
    service_ports={Service.DEFAULT: 8000},
)

def deleteModelProfile():
    """Delete a model profile."""
    result = configuration.ModelProfile.delete(
        "modelprofile-guid"
    )
    print("Deleted ModelProfile:")
    print(result)

deleteModelProfile()

Response

Returns 204 No Content on successful deletion. No response body is returned.

Best Practices

When managing model profiles in the View platform, consider the following recommendations for optimal AI model organization, association management, and system maintenance:

  • Profile Organization: Use descriptive names to clearly identify the purpose and scope of each model profile
  • Association Validation: Ensure that referenced model configurations and endpoints exist and are properly configured
  • Active Status Management: Monitor and manage active status to control which profiles are available for use
  • Documentation: Use AdditionalData field to document profile purposes, use cases, and deployment scenarios
  • Profile Lifecycle: Implement proper lifecycle management for profiles across different environments (dev, staging, production)
  • Association Integrity: Regularly validate that associated configurations and endpoints are still valid and accessible
  • Performance Monitoring: Track profile usage and performance to optimize model selection and deployment
  • Backup and Recovery: Maintain backup profiles for critical model deployments to ensure continuity

Next Steps

After successfully managing model profiles, you can:

  • Model Deployment: Use configured profiles to deploy AI models with specific configurations to designated endpoints
  • Environment Management: Organize profiles by environment (development, staging, production) for streamlined deployment
  • Configuration Management: Leverage profiles to manage different model configurations across various deployment scenarios
  • Performance Optimization: Monitor profile performance and adjust associations based on usage patterns and requirements
  • Platform Integration: Integrate model profiles with other View platform services for comprehensive AI model management