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

# Fill In the Middle (FIM)

### 1. Utilisation

Dans la tâche de complétion FIM (Fill In the Middle), les utilisateurs fournissent le contenu du préfixe et du suffixe qu'ils veulent conserver, et le modèle génère la partie manquante à partir de ces indices. Cette méthode de complétion est courante dans des applications telles que l'auto-complétion de code et la génération de texte intermédiaire.

### 2. Format des données

Dans l'interface chat/completions, il suffit de définir le `model id` sur l'ID du modèle dans la [galerie de modèles](https://aihubmix.com/models), disponible en haut à droite de la carte du module.

```json theme={null}
{ 
    "model": "model id",
    "messages": "prompt",
    "params": "params",
    "extra_body": {"prefix":"prefix content", "suffix":"optional suffix content"}
}
```

Dans l'interface completions

```json theme={null}
{
    "model": "model info",
    "prompt": "prompt",
    "suffix": "prompt"
}
```

### 3. Exemple

#### 3.1 Utilisation de la complétion FIM via l'interface chat.completions d'OpenAI :

<CodeGroup>
  ```py Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="AIHUBMIX_API_KEY", # Replace with the key you generated in AiHubMix
      base_url="https://aihubmix.com/v1"
  )

  messages = [
      {"role": "user", "content": "Please write a sum function code"},
  ]

  response = client.chat.completions.create(
      model="gpt-4o-mini",
      messages=messages,
      extra_body={
              "prefix": f"""
  def sum_numbers(numbers):
      # If the list is empty, return 0
      if not numbers:
          return 0
  """,
              "suffix": f"""
  # Run Test
  numbers = [1, 2, 3, 4, 5]
  result = sum_numbers(numbers)
  print("Sum of numbers:", result)
  """
      },
      stream=True,
      max_tokens=4096
  )

  for chunk in response:
      if chunk.choices and len(chunk.choices) > 0 and chunk.choices[0].delta.content is not None:
          print(chunk.choices[0].delta.content, end='')
  ```
</CodeGroup>

#### 3.2 Complétion FIM via l'API Completions d'OpenAI :

<CodeGroup>
  ```py Python theme={null}

  client = OpenAI(
      api_key="Aihubmix APIKEY", 
      base_url="https://aihubmix.com/v1"
  )

  response = client.completions.create(
      model="deepseek-ai/DeepSeek-V2.5",
      prompt=f"""
  def quick_sort(arr):
     # Basic situation: if the array length is less than or equal to 1, return the array
      if len(arr) <= 1:
          return arr
      else:
  """,
      suffix=f"""
  # Test quick_sort function
  arr = [3, 6, 8, 10, 1, 2, 1]
  sorted_arr = quick_sort(arr)
  print("Sorted array:", sorted_arr)
  """,
      stream=True,
      max_tokens=4096
  )

  for chunk in response:
      print(chunk.choices[0].text, end='')
  ```
</CodeGroup>

***

Dernière mise à jour : 2026-06-01
