Phi-4-mini viderefører de sterke kodeferdighetene til Phi-familien. Du kan bruke Prompt til å stille spørsmål relatert til koding. Selvfølgelig, etter å ha lagt til sterkere resonneringsevne, har den enda bedre evner til å generere kode, for eksempel å lage prosjekter basert på spesifikasjoner. For eksempel, generere prosjekter basert på krav som:
Lag en handlekurv-app
- Lag en API Rest med følgende metoder:
- Hent en liste over øl ved hjelp av sideforskyvning og begrensning.
- Hent detaljer om en øl basert på id.
- Søk etter øl basert på navn, beskrivelse, slagord, matparinger og pris.
- Lag en produktliste på hovedsiden.
- Lag en søkefelt for å filtrere produkter.
- Naviger til beskrivelsessiden når brukeren klikker på et produkt.
- (Valgfritt) Lag en prisfiltrering for å filtrere produkter basert på pris.
- Lag en handlekurv.
- Legg til produkter i handlekurven.
- Fjern produkter fra handlekurven.
- Beregn totalprisen for produktene i handlekurven.
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)
Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av maskinbaserte AI-oversettelsestjenester. Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.