File size: 6,929 Bytes
66cec43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
---
base_model: Bluckr/Phi-3-mini-4k-instruct-function-calling-assistant-spanish-pofi-v2
datasets:
- Bluckr/function-calling-assistant-spanish-pofi-v2
inference: true
language:
- es
license: mit
model_creator: Bluckr
model_name: Phi-3-mini-4k-instruct-function-calling-assistant-spanish-pofi-v2
pipeline_tag: text-generation
quantized_by: afrideva
tags:
- nlp
- code
- phi-3
- chat
- function-call
- gguf
- ggml
- quantized
widget:
- messages:
  - content: '### Input: Que sabes hacer? ### Response:'
    role: user
---

# Phi-3-mini-4k-instruct-function-calling-assistant-spanish-pofi-v2-GGUF

Quantized GGUF model files for [Phi-3-mini-4k-instruct-function-calling-assistant-spanish-pofi-v2](https://huggingface.co/Bluckr/Phi-3-mini-4k-instruct-function-calling-assistant-spanish-pofi-v2) from [Bluckr](https://huggingface.co/Bluckr)

## Original Model Card:

<div style="text-align: center;">
  <img src="https://cdn-uploads.huggingface.co/production/uploads/64beeb8f4b4ff0d5097ddcfc/HF124f84-X7L_rPynRa4n.gif" alt="Pofi" width="300" style="display: block; margin: 0 auto;" />
</div>

Phi 3 adjusted to behave like assistant Pofi, training data works with the function calling method.
is a fine-tuned version of ["unsloth/Phi-3-mini-4k-instruct"](https://huggingface.co/unsloth/Phi-3-mini-4k-instruct)
Pofi can:

| Utilities                   | 
|-----------------------------|
| Setting alarms              |
| Connecting to the web       |
| Sending files               |
| Sending messages            |
| Saving strings of characters|
| Opening applications        |
| Creating files              |
| Manipulating the system     |


## Simple Inference API
```python
import requests

API_URL = "https://api-inference.huggingface.co/models/Bluckr/Phi-3-mini-4k-instruct-function-calling-assistant-spanish-pofi-v2"
headers = {"Authorization": "Bearer %s"%token_id}
def query(payload):
	response = requests.post(API_URL, headers=headers, json=payload)
	print(response.json())

prompt = """### Input: c贸mo te llamas? ### Response:"""

output = query({
  "inputs": prompt
})
```
# Response
```python
[{'generated_text': '### Input: c贸mo te llamas? ### Response: soy Pofi.'}]
```


## Unsloth Inference
```python
%%capture
# Installs Unsloth, Xformers (Flash Attention) and all other packages!
!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
!pip install --no-deps "xformers<0.0.26" trl peft accelerate bitsandbytes
```

```python
alpaca_prompt = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:
{}

### Input:
{}

### Response:
{}"""
```


```python
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "Bluckr/Phi-3-mini-4k-instruct-function-calling-assistant-spanish-pofi-v2", 
    max_seq_length = 2048,
    dtype = None,
    load_in_4bit = True,
)
FastLanguageModel.for_inference(model)
```

```python
inputs = tokenizer(
[
    alpaca_prompt.format(
        """""functions":[{'name': 'fnt_programa', 'description': 'el usuario solicita un programa.', 'parameters': [{'description': 'nombre del programa solicitado.', 'name': 'programa', 'required': True, 'type': 'string'}]},
        {'name': 'fnt_buscar_web', 'description': 'el usuario solicita una busqueda en internet.', 'parameters': [{'description': 'busqueda especifica.', 'name': 'busqueda', 'required': False, 'type': 'string'}, {'description': 'p谩gina especifica para la busqueda', 'name': 'sitio', 'required': False, 'type': 'string'}]},
        {'name': 'fnt_buscar_lugares', 'description': 'el usuario solicita la ubicaci贸n de un lugar.', 'parameters': [{'description': 'lugar especifico.', 'name': 'lugar', 'required': True, 'type': 'string'}, {'description': 'ubicaci贸n del lugar', 'name': 'ubicaci贸n', 'required': False, 'type': 'string'}]},
        {'name': 'fnt_enviar_mensajes', 'description': 'el usuario desea enviar un mensaje.', 'parameters': [{'description': 'el usuario especifica a quien enviar el mensaje.', 'name': 'destinatario', 'required': True, 'type': 'string'}, {'description': 'contenido que desea enviar el usuario', 'name': 'mensaje', 'required': True, 'type': 'string'}]},
        {'name': 'fnt_crear_archivo', 'description': 'el usuario desea crear un archivo.', 'parameters': [{'description': 'el usuario especifica el nombre del archivo.', 'name': 'nombre', 'required': False, 'type': 'string'}, {'description': 'ubicaci贸n donde se crear谩 el archivo', 'name': 'ubicaci贸n', 'required': False, 'type': 'string'}, {'description': 'extensi贸n del archivo', 'name': 'extensi贸n', 'required': False, 'type': 'string'}]},
        {'name': 'fnt_establecer_alarma', 'description': 'el usuario desea una alarma o recordatorio', 'parameters': [{'description': 'el usuario especifica el nombre de la alarma.', 'name': 'nombre', 'required': False, 'type': 'string'}, {'description': 'hora de la alarma', 'name': 'hora', 'required': True, 'type': 'string'}, {'description': 'd铆a que se activar谩 la alarma', 'name': 'd铆a', 'required': False, 'type': 'string'}]},
        {'name': 'fnt_enviar_archivos', 'description': 'el usuario solicita el envio de archivos.', 'parameters': [{'description': 'archivos especificos.', 'name': 'archivos', 'required': True, 'type': 'string'}, {'description': 'destino donde llegar谩n los archivos', 'name': 'destino', 'required': True, 'type': 'string'}]},
        {'name': 'fnt_guardar_valores', 'description': 'el usuario solicita almacenar valores.', 'parameters': [{'description': 'valor a almacenar.', 'name': 'valor', 'required': True, 'type': 'string'}, {'description': 'lugar de almacenamiento', 'name': 'lugar', 'required': False, 'type': 'string'}]},
        {'name': 'fnt_hora', 'description': 'el usuario solicita la hora', 'parameters': [{'description': 'ubicaci贸n donde la hora es solicitada.', 'name': 'ubicacion', 'required': True, 'type': 'string'}]},
        {'name': 'fnt_clima', 'description': 'el usuario solicita el clima', 'parameters': [{'description': 'ubicaci贸n donde se solicita el clima.', 'name': 'ubicacion', 'required': True, 'type': 'string'}]},
        {'name': 'fnt_significado', 'description': 'el usuario solicita el significado de una palabra', 'parameters': [{'description': 'palabra solicitada.', 'name': 'palabra', 'required': True, 'type': 'string'}]},""", # instruction
        "Pofi envia el archivo de selfie.jpg a drive", # input
        "", # output - leave this blank for generation!
    )
], return_tensors = "pt").to("cuda")

outputs = model.generate(**inputs, max_new_tokens = 64, use_cache = True)
tokenizer.batch_decode(outputs)
```
# Response
```python
Response:\nEnviando el archivo de selfie.jpg a drive.{"function_call":{"name":"fnt_enviar_archivos","arguments":{"archivos":"selfie.jpg","destino":"drive"}}}<|endoftext|>']
```