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

# Projects and traffic

> Create a project with a stable proxy model name and connect your production Chat Completions application.

A project is the unit you optimize. It owns its data and experiments while giving the application one stable model name. Each Model Distillation project is backed by exactly one W\&B project, which stores its traces.

This page shows you how to create a project, connect your application to the proxy under the project's proxy model name, and confirm that the proxy records traces you can use as training data.

## Create a project

To create a project, follow these steps:

1. From **Projects**, select **Create or import a project**.
2. Configure the following fields:
   * **W\&B project:** Select **Create new** to create a W\&B project in the selected entity, or **Import existing** to connect a W\&B project you already have. Importing doesn't change the existing project's data. A W\&B project can back only one Model Distillation project per entity.
   * **Proxy model name:** The stable `model` value your application sends to the proxy. Studio suggests a name derived from the W\&B project name. Use lowercase letters, digits, and hyphens, up to 64 characters. The proxy model name can differ from the W\&B project name.
   * **Initial model:** The model that serves version 1 while you collect traces and train alternatives.
3. Select **Create project**.

Every new project requires an initial model so it can route traffic as soon as its routing deployment is applied.

<Accordion title="API: Create a project (PUT /tasks/{alias})">
  The management API calls a project a task. The proxy model name is the `alias` path segment. Set `project` to the W\&B project name and `project_mode` to `create` or `import`. Supply at least one routing target; creation fails when `targets` is missing or empty.

  ```bash theme={"system"}
  curl --request PUT \
    --url "https://distillation.training.wandb.ai/v1/tasks/ticket-classifier" \
    --header "Authorization: Bearer $WANDB_API_KEY" \
    --header "Wandb-Entity: your-team" \
    --header "Content-Type: application/json" \
    --data '{
      "project": "ticket-classifier",
      "project_mode": "create",
      "targets": [
        {"model_ref": "openai/gpt-5.6-sol", "weight": 1}
      ]
    }'
  ```

  For the complete schema, see [Create a Model Distillation project](/model-distillation/reference/management/tasks/create-a-model-distillation-project).
</Accordion>

## Connect the application

After you create the project, point your application at the proxy, which routes its traffic through the project and records it as traces. Keep the normal OpenAI client and change two values:

```python theme={"system"}
client = OpenAI(
    base_url="https://proxy.training.wandb.ai/v1",
    api_key=os.environ["WANDB_API_KEY"],
)

response = client.chat.completions.create(
    model="your-proxy-model-name",
    messages=messages,
    extra_body={
        "metadata": {
            "wandb.entity": "your-team",
            "wandb.thread_id": conversation_id,
        }
    },
)
```

The proxy forwards all normal Chat Completions fields, replaces the proxy model name with the selected target's provider model, and applies that target's stored parameter overrides.

## Verify useful traces

Before you collect a large dataset, confirm the following:

* Successful calls appear in the project's request chart.
* Traffic share matches routing weights.
* A stable `wandb.thread_id` groups each conversation.
* Tool definitions, response formats, and multi-turn messages appear in the recorded request.
* Failed provider calls are visible for debugging but excluded from training data.

When these checks pass, the project records traces that can serve as training examples.

<Tip>
  Send the complete message history on every call. Each trace becomes one self-contained training example representing the assistant response produced for that history.
</Tip>
