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

# Fireworks

> Fireworks AI model provider configuration and integration guide

Fireworks AI provides fast inference for open-source language models including Llama, Mixtral, Code Llama, and other state-of-the-art models. Braintrust integrates seamlessly with Fireworks through direct API access, wrapper functions for automatic tracing, and proxy support.

## Setup

To use Fireworks models, configure your Fireworks API key in Braintrust.

1. Get a Fireworks API key from [Fireworks AI Console](https://fireworks.ai/account/api-keys)
2. Add the Fireworks API key as an [organization or project AI provider](https://docs.braintrust.dev/admin/ai-providers.md).
3. Set the Fireworks API key and your Braintrust API key as environment variables

```bash title=".env" theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
FIREWORKS_API_KEY=<your-fireworks-api-key>
BRAINTRUST_API_KEY=<your-braintrust-api-key>

# For organizations on the EU data plane, use https://api-eu.braintrust.dev
# For self-hosted deployments, use your data plane URL
# BRAINTRUST_API_URL=<your-braintrust-api-url-here>
```

> [!NOTE]
>
> API keys are stored as one-way cryptographic hashes, never in plaintext.

## Use Fireworks with Braintrust gateway

The [Braintrust gateway](https://docs.braintrust.dev/deploy/gateway.md) allows you to access Fireworks models through a unified interface. Use any [supported provider's SDK](https://docs.braintrust.dev/integrations/ai-providers.md) to call Fireworks models.

Install the `braintrust` and `openai` packages.

```bash Typescript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
# pnpm
pnpm add braintrust openai
# npm
npm install braintrust openai
```

```bash Python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
pip install braintrust openai
```

Then, initialize the client and make a request to a Fireworks model via the Braintrust gateway.

```typescript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import { OpenAI } from "openai";

const client = new OpenAI({
  baseURL: "https://gateway.braintrust.dev/v1",
  apiKey: process.env.BRAINTRUST_API_KEY,
});

const response = await client.chat.completions.create({
  model: "fireworks/llama-3.1-70b-instruct",
  messages: [{ role: "user", content: "Hello, world!" }],
});
```

```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.braintrust.dev/v1",
    api_key=os.environ["BRAINTRUST_API_KEY"],
)

response = client.chat.completions.create(
    model="fireworks/llama-3.1-70b-instruct",
    messages=[{"role": "user", "content": "Hello, world!"}],
)
```

## Trace logs with Fireworks

Trace your Fireworks LLM calls for observability and monitoring.

When using the Braintrust gateway, API calls are automatically logged to the specified project.

```typescript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import { OpenAI } from "openai";
import { initLogger } from "braintrust";

initLogger({
  projectName: "My Project",
  apiKey: process.env.BRAINTRUST_API_KEY,
});

const client = new OpenAI({
  baseURL: "https://gateway.braintrust.dev/v1",
  apiKey: process.env.BRAINTRUST_API_KEY,
});

// All API calls are automatically logged
const result = await client.chat.completions.create({
  model: "fireworks/llama-3.1-70b-instruct",
  messages: [{ role: "user", content: "What is machine learning?" }],
});
```

```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import os

from braintrust import init_logger
from openai import OpenAI

init_logger(project="My Project")

client = OpenAI(
    base_url="https://gateway.braintrust.dev/v1",
    api_key=os.environ["BRAINTRUST_API_KEY"],
)

# All API calls are automatically logged
result = client.chat.completions.create(
    model="fireworks/llama-3.1-70b-instruct",
    messages=[{"role": "user", "content": "What is machine learning?"}],
)
```

> [!TIP]
>
> The Braintrust gateway is not required. For more control, learn how to [customize traces](https://docs.braintrust.dev/instrument/advanced-tracing.md).

## Evaluate with Fireworks

Evaluations distill the non-deterministic outputs of Fireworks models into an effective feedback loop that enables you to ship more reliable, higher quality products. Braintrust `Eval` is a simple function composed of a dataset of user inputs, a task, and a set of scorers. To learn more about evaluations, see the [Experiments](https://docs.braintrust.dev/evaluate/run-evaluations.md) guide.

```typescript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import { Eval } from "braintrust";
import { OpenAI } from "openai";

const client = new OpenAI({
  baseURL: "https://gateway.braintrust.dev/v1",
  apiKey: process.env.BRAINTRUST_API_KEY,
});

Eval("Fireworks Evaluation", {
  data: () => [
    { input: "What is 2+2?", expected: "4" },
    { input: "What is the capital of France?", expected: "Paris" },
  ],
  task: async (input) => {
    const response = await client.chat.completions.create({
      model: "fireworks/llama-3.1-70b-instruct",
      messages: [{ role: "user", content: input }],
    });
    return response.choices[0].message.content;
  },
  scores: [
    {
      name: "accuracy",
      scorer: (args) => (args.output === args.expected ? 1 : 0),
    },
  ],
});
```

```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import os

from braintrust import Eval
from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.braintrust.dev/v1",
    api_key=os.environ["BRAINTRUST_API_KEY"],
)

def task(input):
    response = client.chat.completions.create(
        model="fireworks/llama-3.1-70b-instruct",
        messages=[{"role": "user", "content": input}],
    )
    return response.choices[0].message.content

def accuracy_scorer(output, expected, **kwargs):
    return 1 if output == expected else 0

Eval(
    "Fireworks Evaluation",
    data=[
        {"input": "What is 2+2?", "expected": "4"},
        {"input": "What is the capital of France?", "expected": "Paris"},
    ],
    task=task,
    scores=[accuracy_scorer],
)
```

> [!TIP]
>
> To learn more about tool use, multimodal support, attachments, and masking sensitive data with Fireworks, visit the [customize traces](https://docs.braintrust.dev/instrument/advanced-tracing.md) guide.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.