# Using different models

Unlike the built-in AI APIs, AIBrow has support for multiple models. It ships with a default model, but you can request that your page use a different model. When a model is downloaded, it becomes available to all sites on the machine, meaning it only needs to be downloaded once.

Specifying a model can be useful if a specific model provides better responses to the types of prompts you're using.

{% hint style="success" %}
Look at the current list of [supported models](https://docs.aibrow.ai/api-reference/models), or [request more](https://github.com/axonzeta/aibrow/issues)!
{% endhint %}

## Use a different model

All the top-level AiBrow APIs support requesting a model through the create call.

```javascript
import AI from '@aibrow/web'

// All the top-level APIs support the model field, such as
//   * AI.AIBrow.LanguageModel({ ... })
//   * window.aibrow.LanguageModel({ ... })
//   * AI.AIBrow.Summarizer.create({ ... })
//   * window.aibrow.Summarizer.create({ ... })
//   * AI.AIBrow.Writer.create({ ... })
//   * window.aibrow.Writer.create({ ... })
const session = await AI.AIBrow.LanguageModel.create({
  model: "phi-3-5-mini-instruct-q4-k-m"
})

const stream = await session.promptStreaming("write a long poem");
for await (const chunk of stream) {
  console.log(chunk)
}
```
