> ## Documentation Index
> Fetch the complete documentation index at: https://sambanova-systems.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SambaNova SDK for Python and JavaScript

SambaNova offers SDKs for both Python and JavaScript/TypeScript, making it easy to interact with the SambaNova REST API. The [SambaNova Python client](https://pypi.org/project/sambanova/) works with Python 3.8 and above, while the [JavaScript/TypeScript version](https://www.npmjs.com/package/sambanova) is designed for server-side environments. Both libraries come with built-in type definitions for request parameters and response fields, and support both synchronous and asynchronous usage.

## Usage example

To get started, select your preferred programming language. Then, open a terminal window and install the SambaNova SDK.

<CodeGroup>
  ```javascript Javascript theme={null}
  //ensure you have Node.js installed.
  npm install sambanova
  ```

  ```python Python theme={null}
  # make sure you have Python3 and pip installed
  pip install sambanova
  ```
</CodeGroup>

Next, copy the following code into a  new file.

<CodeGroup>
  ```javascript hello-world.js theme={null}
  import SambaNova from "sambanova";

  const client = new SambaNova({
    baseURL: "your-sambanova-base-url",
    apiKey: "your-sambanova-api-key",
  });

  const chatCompletion = await client.chat.completions.create({
    messages: [
      { role: "system", content: "Answer the question in a couple sentences." },
      { role: "user", content: "Share a happy story with me" },
    ],
    model: "Meta-Llama-3.3-70B-Instruct",
    logprobs: true,
    top_logprobs: 2,
  });

  console.log(chatCompletion.choices[0].message.content);
  ```

  ```python hello_world.py theme={null}
  from sambanova import SambaNova

  client = SambaNova(
      base_url="your-sambanova-base-url",
      api_key="your-sambanova-api-key"
  )

  completion = client.chat.completions.create(
    model = "Meta-Llama-3.3-70B-Instruct",
    messages = [
        {"role": "system", "content": "Answer the question in a couple sentences."},
        {"role": "user", "content": "Share a happy story with me"}
      ],
    logprobs = True,
    top_logprobs = 2
  )

  print(completion.choices[0].message.content)
  ```
</CodeGroup>

Once copied into the file, replace the string fields `"your-sambanova-base-url"` and `"your-sambanova-api-key"` with your base URL and API Key values. Then run the file with the command below in a terminal window.

<CodeGroup>
  ```javascript Javascript theme={null}
  node hello-world.js
  ```

  ```python Python theme={null}
  python hello_world.py
  ```
</CodeGroup>

After you run the program, you'll see output similar to the following:

```json theme={null}
{
  "id": "d89243f2-de68-416f-85c6-27c244cf9c7f",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "One day, a little girl named Sophie found a lost puppy in her neighborhood and decided to take care of it until she could find its owner. As she cared for the puppy, named Max, they formed an unbreakable bond, and when the owner was finally found, they were so grateful to Sophie that they asked her to be Max's permanent dog-sitter, bringing joy and companionship to Sophie's life.",
        "role": "assistant"
      },
      "logprobs": {
      	"content": [
        	{
             	"bytes": [...],
                "logprob": -0.06340447068214417,
                "token": "One",
                "top_logprobs": [
                	{
                    	"bytes": [...],
                        "logprob": -0.06340447068214417,
                        "token": "One"
                   	},
                    ...
                 ]
       		},
            ...
		]
    }
  ],
  "created": 1759518870.892972,
  "model": "Meta-Llama-3.3-70B-Instruct",
  "object": "chat.completion",
  "system_fingerprint": "fastcoe",
  "usage": {
    "completion_tokens": 84,
    "prompt_tokens": 49,
    "total_tokens": 133,
    ...
    "stop_reason": "stop"
  }
}
```
