Models

Comprehensive guide to managing language models in the View Assistant platform for model operations and lifecycle management.

Overview

Model management provides comprehensive language model operations within the View Assistant platform. It enables listing, retrieving, deleting, loading, and unloading of language models for optimal resource management and performance optimization.

Model operations are accessible via the View Assistant API at [http|https]://[hostname]:[port]/v1.0/tenants/[tenant-guid]/models and support various model lifecycle operations.

API Endpoints

  • POST /v1.0/tenants/[tenant-guid]/assistant/models - List local models
  • POST /v1.0/tenants/[tenant-guid]/assistant/models/pull - Retrieve model
  • POST /v1.0/tenants/[tenant-guid]/assistant/models/delete - Delete model
  • POST /v1.0/tenants/[tenant-guid]/assistant/models/load - Load/unload model

List Local Models

Lists all available local models using POST /v1.0/tenants/[tenant-guid]/assistant/models. Retrieves information about locally available language models including model names, families, and parameter sizes.

Request Parameters

Required Parameters

  • OllamaHostname (string, Body, Required): Hostname of the Ollama server
  • OllamaPort (number, Body, Required): Port number of the Ollama server
curl --location 'http://view.homedns.org:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/assistant/models' \
--header 'Content-Type: application/json' \
--data '{
    "OllamaHostname": "ollama",
    "OllamaPort": 11434
}'
import { ViewAssistantSdk } from "view-sdk";

const api = new ViewAssistantSdk(
  "http://localhost:8000/", //endpoint
  "<tenant-guid>", //tenant Id
  "default" //access key
);


const retrieveLocalModels = async () => {
  try {
    const response = await api.Model.retrieveLocalModels({
      OllamaHostname: "ollama",
      OllamaPort: 11434,
    });
    console.log(response);
  } catch (err) {
    console.log("Error retrieving local models:", err);
  }
};
retrieveLocalModels();
import view_sdk
from view_sdk import assistant

sdk = view_sdk.configure( access_key="default",base_url="localhost", tenant_guid= "<tenant-guid>")

def listModels():
    result = assistant.Models.retrieve_all(  
        OllamaHostname= "ollama",
        OllamaPort= 11434
    )
    print(result)

listModels()
using View.Sdk;
using View.Sdk.Assistant;

ViewAssistantSdk sdk = new ViewAssistantSdk(Guid.Parse("<tenant-guid>"),"default", "http://localhost:8000/");
ModelRequest modelReq = new ModelRequest
{
    OllamaHostname  = "ollama",
    OllamaPort      = 11434
};
List<Model> response = await sdk.Model.RetrieveMany(modelReq);

Response

[
    {
        "ModelName": "llama3.1:latest",
        "ModelFamily": "llama",
        "ParameterSize": "8.0B"
    }
]

Retrieve model

To retrieve a model, call POST /v1.0/tenants/[tenant-guid]/assistant/models/pull

curl --location 'http://view.homedns.org:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/assistant/models/pull' \
--header 'Content-Type: application/json' \
--data '{
    "ModelName": "llama3.1:latest",
    "OllamaHostname": "ollama",
    "OllamaPort": 11434
}'
import { ViewAssistantSdk } from "view-sdk";

const api = new ViewAssistantSdk(
  "http://localhost:8000/", //endpoint
  "<tenant-guid>", //tenant Id
  "default" //access key
);

const retrieveModels = async () => {
  try {
    const response = await api.Model.retrieve(
      {
        ModelName: "llama3.1:latest",
        OllamaHostname: "ollama",
        OllamaPort: 11434,
      },
      (token) => {
        console.log(token);
      }
    );
    console.log(response);
  } catch (err) {
    console.log("Error retrieving models:", err);
  }
};
retrieveModels();
import view_sdk
from view_sdk import assistant

sdk = view_sdk.configure( access_key="default",base_url="localhost", tenant_guid= "<tenant-guid>")

def retrieveModel():
    result = assistant.Models.retrieve(
        ModelName= "llama3.1:latest",
        OllamaHostname= "ollama",
        OllamaPort= 11434
    )
    print(result)

retrieveModel()
using View.Sdk;
using View.Sdk.Assistant;

ViewAssistantSdk sdk = new ViewAssistantSdk(Guid.Parse("<tenant-guid>"),"default", "http://localhost:8000/");
ModelRequest modelReq = new ModelRequest
{
    ModelName       = "llama3.1:latest",
    OllamaHostname  = "ollama",
    OllamaPort      = 11434
};
string response = await sdk.Model.Retrieve(modelReq);

Delete model

To lost local models, call POST /v1.0/tenants/[tenant-guid]/assistant/models/delete

curl --location 'http://view.homedns.org:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/assistant/models/delete' \
--header 'Content-Type: application/json' \
--data '{
    "ModelName": "llama3.1:latestss",
    "OllamaHostname": "localhost",
    "OllamaPort": 11434
}'
import { ViewAssistantSdk } from "view-sdk";

const api = new ViewAssistantSdk(
  "http://localhost:8000/", //endpoint
  "<tenant-guid>", //tenant Id
  "default" //access key
);

const deleteModel = async () => {
  try {
    const response = await api.Model.delete({
      ModelName: "llama3.1:latest",
      OllamaHostname: "ollama",
      OllamaPort: 11434,
    });
    console.log(response);
  } catch (err) {
    console.log("Error deleting model:", err);
  }
};
deleteModel();
import view_sdk
from view_sdk import assistant

sdk = view_sdk.configure( access_key="default",base_url="localhost", tenant_guid= "<tenant-guid>")

def deleteModel():
    result = assistant.Models.delete(
        ModelName= "llama3.1:latest",
        OllamaHostname= "ollama",
        OllamaPort= 114323
    )
    print(result)

deleteModel()
using View.Sdk;
using View.Sdk.Assistant;

ViewAssistantSdk sdk = new ViewAssistantSdk(Guid.Parse("<tenant-guid>"),"default", "http://localhost:8000/");
ModelRequest modelReq = new ModelRequest
{
    ModelName       = "llama3.1:latest",
    OllamaHostname  = "ollama",
    OllamaPort      = 11434
};
ModelResponse response = await sdk.Model.Delete(modelReq);

Preload Model

To preload model, call POST /v1.0/tenants/[tenant-guid]/assistant/models/load

curl --location 'http://view.homedns.org:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/assistant/models/load' \
--header 'Content-Type: application/json' \
--data '{
    "ModelName": "llama3.1:latest",
    "OllamaHostname": "ollama",
    "OllamaPort": 11434
}'
import { ViewAssistantSdk } from "view-sdk";

const api = new ViewAssistantSdk(
  "http://localhost:8000/", //endpoint
  "<tenant-guid>", //tenant Id
  "default" //access key
);

const preloadModel = async () => {
  try {
    const response = await api.Model.loadUnload({
      ModelName: "llama3.1:latest",
      OllamaHostname: "ollama",
      OllamaPort: 11434,
    });
    console.log(response);
  } catch (err) {
    console.log("Error preloading model:", err);
  }
};
preloadModel();
import view_sdk
from view_sdk import assistant

sdk = view_sdk.configure( access_key="default",base_url="localhost", tenant_guid= "<tenant-guid>")

def loadModel():
    result = assistant.Models.load_unload(
        ModelName= "llama3.1:latest",
        OllamaHostname= "ollama",
        OllamaPort= 11434
    )
    print(result)

loadModel()
using View.Sdk;
using View.Sdk.Assistant;

ViewAssistantSdk sdk = new ViewAssistantSdk(Guid.Parse("<tenant-guid>"),"default", "http://localhost:8000/");
ModelRequest modelReq = new ModelRequest
{
    ModelName       = "llama3.1:latest",
    OllamaHostname  = "ollama",
    OllamaPort      = 11434
};
ModelResponse response = await sdk.Model.PreLoad(modelReq);

Response

{
    "message": "Model llama3.1:latest successfully loaded",
    "details": {
        "model": "llama3.1:latest",
        "created_at": "2025-04-29T13:08:12.461027637Z",
        "message": {
            "role": "assistant",
            "content": ""
        },
        "done_reason": "load",
        "done": true
    }
}

Unload Model

To lost local models, call POST /v1.0/tenants/[tenant-guid]/assistant/models/load

curl --location 'http://view.homedns.org:8000/v1.0/tenants/00000000-0000-0000-0000-000000000000/assistant/models/load' \
--header 'Content-Type: application/json' \
--data '{
    "ModelName": "qwen2.5:7b",
    "OllamaHostname": "localhost",
    "OllamaPort": 11434,
    "Unload": true
}'
import { ViewAssistantSdk } from "view-sdk";

const api = new ViewAssistantSdk(
  "http://localhost:8000/", //endpoint
  "<tenant-guid>", //tenant Id
  "default" //access key
);

const unloadModel = async () => {
  try {
    const response = await api.Model.loadUnload({
      ModelName: "qwen2.5:7b",
      OllamaHostname: "localhost",
      OllamaPort: 11434,
      Unload: true,
    });
    console.log(response);
  } catch (err) {
    console.log("Error unloading model:", err);
  }
};
unloadModel();
import view_sdk
from view_sdk import assistant

sdk = view_sdk.configure( access_key="default",base_url="localhost", tenant_guid= "<tenant-guid>")

def unLoadModel():
    result = assistant.Models.load_unload(
        Unload= True,
        ModelName= "llama3.1:latest",
        OllamaHostname= "ollama",
        OllamaPort= 11434
    )
    print(result)

unLoadModel()
using View.Sdk;
using View.Sdk.Assistant;

ViewAssistantSdk sdk = new ViewAssistantSdk(Guid.Parse("<tenant-guid>"),"default", "http://localhost:8000/");
ModelRequest modelReq = new ModelRequest
{
   ModelName       = "llama3.1:latest",
   OllamaHostname  = "ollama",
   OllamaPort      = 11434,
   Unload = true
};
ModelResponse response = await sdk.Model.Unload(modelReq);

Response

{
    "message": "Model qwen2.5:7b successfully unloaded",
    "details": {
        "model": "qwen2.5:7b",
        "created_at": "2025-04-30T10:30:58.73951003Z",
        "message": {
            "role": "assistant",
            "content": ""
        },
        "done_reason": "unload",
        "done": true
    }
}

Best Practices

When managing language models in the View Assistant platform, consider the following recommendations for optimal model operations, lifecycle management, and resource optimization:

  • Model Selection: Choose appropriate language models based on your use cases, performance requirements, and resource constraints
  • Resource Management: Implement effective resource management strategies for model loading, unloading, and memory optimization
  • Model Lifecycle: Implement proper model lifecycle management including retrieval, loading, and cleanup for optimal performance
  • Performance Optimization: Monitor model performance and optimize loading/unloading strategies for different usage patterns
  • Model Administration: Implement comprehensive model administration including versioning, updates, and maintenance

Next Steps

After successfully managing language models, you can:

  • Assistant Configuration: Create and manage assistant configurations using your available models for specialized chat behaviors
  • Model Optimization: Optimize model performance and resource utilization for different assistant scenarios and requirements
  • Integration: Integrate model management with your applications for enhanced AI-powered interactions and experiences
  • Model Analytics: Develop model analytics and performance monitoring for improved model effectiveness and optimization
  • Advanced Operations: Implement advanced model operations including versioning, updates, and automated lifecycle management