APIs Usage Examples

Text Generation (Mistral, Granite,...)

Using Curl


curl -X 'POST' \
    'https://granite-8b-code-instruct-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443/v1/completions' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer ***************************' \
    -d '{
    "model": "granite-8b-code-instruct-128k",
    "prompt": "San Francisco is a",
    "max_tokens": 15,
    "temperature": 0
}'

Using raw Python


import requests
import urllib3
import numpy as np
import json

API_URL = "https://granite-8b-code-instruct-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443"
API_KEY = "***************************"

input = ["San Francisco is a"]

completion = requests.post(
    url=API_URL+'/v1/completions',
    json={
      "model": "granite-8b-code-instruct-128k",
      "prompt": "San Francisco is a",
      "max_tokens": 15,
      "temperature": 0
    },
    headers={'Authorization': 'Bearer '+API_KEY}
).json()

print(completion)

Using Langchain

Prerequisites: pip install langchain-community

from langchain_community.llms import VLLMOpenAI

API_URL = "https://granite-8b-code-instruct-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443"
API_KEY = "***************************"

llm = VLLMOpenAI(
    openai_api_key=API_KEY,
    openai_api_base=API_URL+"/v1",
    model_name="granite-8b-code-instruct-128k",
    model_kwargs={"stop": ["."]},
)
print(llm.invoke("Rome is"))

Connecting Continue.dev to Granite-Code-Instruct

Configuration in .continue/config.json

...
  "models": [
    {
      "title": "Granite-8B-Instruct",
      "provider": "openai",
      "model": "granite-8b-code-instruct-128k",
      "apiBase": "https://granite-8b-code-instruct-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443/v1/",
      "apiKey": "************************",
      "completionOptions": {
        "temperature": 0.1,
        "topK": 1,
        "topP": 1,
        "presencePenalty": 0,
        "frequencyPenalty": 0
      }
    }
  ]
...
  "tabAutocompleteModel": {
    "title": "Granite-8B-Instruct",
    "provider": "openai",
    "model": "granite-8b-code-instruct-128k",
    "apiBase": "https://granite-8b-code-instruct-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443/v1/",
    "apiKey": "****************************",
    "completionOptions": {
      "temperature": 0.1,
      "topK": 1,
      "topP": 1,
      "presencePenalty": 0,
      "frequencyPenalty": 0
    }
  },
  "tabAutocompleteOptions": {
    "useCopyBuffer": false,
    "maxPromptTokens": 1024,
    "prefixPercentage": 0.5
  },
...

Embeddings (Granite Embedding, Nomic-Embed-Text,...)

Using Curl


curl -X 'POST' \
  'https://granite-embedding-278m-multilingual-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443/v1/embeddings'  \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer **************************' \
  -d '{
  "model": "granite-embedding-278m-multilingual",
  "input": [
    "Embeddings test"
  ],
  "encoding_format": "float",
  "user": "string",
  "truncate_prompt_tokens": 1,
  "additional_data": "string",
  "add_special_tokens": true,
  "priority": 0,
  "additionalProp1": {}
}'

Using raw Python


# Calling the OpenAI-compatible embeddings API

import requests
import urllib3
import numpy as np
import json

API_URL = "https://granite-embedding-278m-multilingual-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443/v1/embeddings"
API_KEY = "*************************"

test_strings = ["That is a happy dog","That is a very happy person","Today is a sunny day"]

embeddings = requests.post(
    url=API_URL+'/v1/embeddings',
    json={"input": test_strings, "model": "granite-embedding-278m-multilingual"},
    headers={'Authorization': 'Bearer '+API_KEY}
).json()

print(embeddings)

Using Langchain

Prerequisites: pip install langchain-openai

from langchain_openai import OpenAIEmbeddings

API_URL = "https://nomic-embed-text-v1-5-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443"
API_KEY = "*************************"

embeddings_model = OpenAIEmbeddings(openai_api_base=API_URL, openai_api_key=API_KEY, model="granite-embedding-278m-multilingual")

test_strings = ["That is a happy dog","That is a very happy person","Today is a sunny day"]

embeddings = embeddings_model.embed_documents(test_strings)

print(embeddings)
    

Connecting Continue.dev to Nomic-Embed-Text

Configuration in .continue/config.json

...
  "embeddingsProvider": {
    "title": "Nomic-embed-text-v1.5",
    "provider": "openai",
    "model": "nomic-embed-text-v1.5",
    "apiBase": "https://nomic-embed-text-v1-5-maas-apicast-production.apps.prod.rhoai.rh-aiservices-bu.com:443/v1/",
    "apiKey": "*************************",
    "maxBatchSize": 32
  },
...