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

# Interference API

> How to use the interference API with the OpenAI library or requests

## Interference OpenAI-Proxy API

The Interference API allows you to serve other OpenAI integrations with G4F. It acts as a proxy, translating requests to the OpenAI API into requests to the G4F providers.

### Run Interference API from PyPI Package

You can run the Interference API directly from the G4F PyPI package:

```python theme={null}
from g4f.api import run_api

run_api()
```

### Run Interference API from Repository

Alternatively, you can run the Interference API from the cloned repository.

Run the server with:

```sh theme={null}
g4f api
```

or

```sh theme={null}
python -m g4f.api.run
```

### Usage with OpenAI Library

<Accordion title="Expand for example">
  ```python theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="",
      # Change the API base URL to the local interference API
      base_url="http://localhost:1337/v1"  
  )

  response = client.chat.completions.create(
      model="gpt-3.5-turbo",
      messages=[{"role": "user", "content": "write a poem about a tree"}],
      stream=True,
  )

  if isinstance(response, dict):
      # Not streaming
      print(response.choices[0].message.content)
  else:
      # Streaming
      for token in response:
          content = token.choices[0].delta.content
          if content is not None:
              print(content, end="", flush=True)
  ```
</Accordion>

### Usage with Requests Library

You can also send requests directly to the Interference API using the `requests` library.

<Accordion title="Expand for example">
  Send a POST request to `/v1/chat/completions` with the request body containing the `model` and other parameters:

  ```python theme={null}
  import requests

  url = "http://localhost:1337/v1/chat/completions"
  body = {
      "model": "gpt-3.5-turbo-16k", 
      "stream": False,
      "messages": [
          {"role": "assistant", "content": "What can you do?"}
      ]
  }

  json_response = requests.post(url, json=body).json().get('choices', [])

  for choice in json_response:
      print(choice.get('message', {}).get('content', ''))
  ```
</Accordion>

## Key Points

* The Interference API translates OpenAI API requests into G4F provider requests
* You can run it from the PyPI package or the cloned repository
* It supports usage with the OpenAI Python library by changing the `base_url`
* Direct requests can be sent to the API endpoints using libraries like `requests`

<Note>
  The Interference API allows easy integration of G4F with existing OpenAI-based applications and tools.
</Note>
