Phi-4-mini zet de sterke programmeermogelijkheden van de Phi Family voort. Je kunt Prompt gebruiken om vragen te stellen over programmeren. Natuurlijk, na het toevoegen van de sterke redeneervaardigheid, heeft het krachtigere programmeermogelijkheden, zoals het genereren van projecten op basis van eisen. Bijvoorbeeld, projecten genereren volgens specificaties, zoals:
Maak een Winkelwagen-app
- Maak een REST API met de volgende methoden:
- Haal een lijst met bieren op met behulp van pagina-offset en limiet.
- Haal bierdetails op via id.
- Zoek naar bier op naam, beschrijving, slogan, voedselcombinaties en prijs.
- Maak een productlijst op de hoofdpagina.
- Maak een zoekbalk om producten te filteren.
- Navigeer naar de beschrijvingspagina wanneer de gebruiker op een product klikt.
- (Optioneel) Slicer om producten te filteren op prijs.
- Maak een winkelwagen.
- Voeg producten toe aan de winkelwagen.
- Verwijder producten uit de winkelwagen.
- Bereken de totale prijs van de producten in de winkelwagen.
import requests
import torch
from PIL import Image
import soundfile
from transformers import AutoModelForCausalLM, AutoProcessor, GenerationConfig,pipeline,AutoTokenizer
model_path = 'Your Phi-4-mini-mm-instruct'
kwargs = {}
kwargs['torch_dtype'] = torch.bfloat16
processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_path,
trust_remote_code=True,
torch_dtype='auto',
_attn_implementation='flash_attention_2',
).cuda()
generation_config = GenerationConfig.from_pretrained(model_path, 'generation_config.json')
user_prompt = '<|user|>'
assistant_prompt = '<|assistant|>'
prompt_suffix = '<|end|>'
requirement = """
Create a Shopping Cart App
- Create an API Rest with the following methods:
- Get a list of beers using page offset and limit.
- Get beer details by id.
- Search for beer by name, description, tagline, food pairings, and price.
- Create a list of products on the main page.
- Create a search bar to filter products.
- Navigate to the description page when the user clicks on a product.
- (Optional) Slicer to filter products by price.
- Create a shopping cart.
- Add products to the cart.
- Remove products from the cart.
- Calculate the total price of the products in the cart."""
note = """
Note:
1. Use Python Flask to create a Repository pattern based on the following structure to generate the files
|- models
|- controllers
|- repositories
|- views
2. For the view page, please use SPA + VueJS + TypeScript to build
3. Firstly use markdown to output the generated project structure (including directories and files), and then generate the file names and corresponding codes step by step, output like this
## Project Structure
|- models
| - user.py
|- controllers
| - user_controller.py
|- repositories
| - user_repository.py
|- templates
| - index.html
## Backend
#### `models/user.py`
```python
```
.......
## Frontend
#### `templates/index.html`
```html
```
......."""
prompt = f'{user_prompt}Please create a project with Python and Flask according to the following requirements:\n{requirement}{note}{prompt_suffix}{assistant_prompt}'
inputs = processor(prompt, images=None, return_tensors='pt').to('cuda:0')
generate_ids = model.generate(
**inputs,
max_new_tokens=2048,
generation_config=generation_config,
)
generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
response = processor.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(response)Disclaimer:
Dit document is vertaald met behulp van de AI-vertalingsdienst Co-op Translator. Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.