mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-02 15:40:13 +00:00
65 lines
2.3 KiB
Plaintext
65 lines
2.3 KiB
Plaintext
|
# PAL (Models de llenguatge assistits per programa)
|
||
|
|
||
|
import { Callout, FileTree } from 'nextra-theme-docs'
|
||
|
import {Screenshot} from 'components/screenshot'
|
||
|
import PAL from '../../img/pal.png'
|
||
|
|
||
|
[Gao et al., (2022)](https://arxiv.org/abs/2211.10435) presenta un mètode que utilitza LLMs per llegir problemes en llenguatge natural i generar programes com a passos intermedis de raonament. Anomenats models de llenguatge assistits per programa (PAL), difereix de l'encadenament de pensaments en el sentit que, en lloc d'utilitzar text de forma lliure per obtenir una solució, delega el pas de la solució a un temps d'execució programàtic, com un intèrpret de Python.
|
||
|
|
||
|
<Screenshot src={PAL} alt="PAL" />
|
||
|
Font de la imatge: [Gao et al., (2022)](https://arxiv.org/abs/2211.10435)
|
||
|
|
||
|
Anem a veure un exemple utilitzant LangChain i OpenAI GPT-3. Estem interessats a desenvolupar una aplicació senzilla que sigui capaç d'interpretar la pregunta que es planteja i proporcionar una resposta aprofitant l'intèrpret de Python.
|
||
|
|
||
|
Específicament, estem interessats a crear una funcionalitat que permeti l'ús de l'LLM per respondre preguntes que requereixin comprensió de dates. Proporcionarem a l'LLM un avís que inclogui alguns exemples adoptats d'[aquí](https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py).
|
||
|
|
||
|
Aquestes són les importacions que necessitem:
|
||
|
|
||
|
```python
|
||
|
import openai
|
||
|
from datetime import datetime
|
||
|
from dateutil.relativedelta import relativedelta
|
||
|
import os
|
||
|
from langchain.llms import OpenAI
|
||
|
from dotenv import load_dotenv
|
||
|
```
|
||
|
|
||
|
Configurem primer algunes coses:
|
||
|
|
||
|
```python
|
||
|
load_dotenv()
|
||
|
|
||
|
# Configuració de l'API
|
||
|
openai.api_key = os.getenv("OPENAI_API_KEY")
|
||
|
|
||
|
# per a LangChain
|
||
|
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
|
||
|
```
|
||
|
|
||
|
Configurar l'instància del model:
|
||
|
|
||
|
```python
|
||
|
llm = OpenAI(model_name='text-davinci-003', temperature=0)
|
||
|
```
|
||
|
|
||
|
Configurar el prompt + pregunta:
|
||
|
|
||
|
```python
|
||
|
question = "Avui és 27 de febrer de 2023. Vaig néixer exactament fa 25 anys. Quina és la data en què vaig néixer en MM/DD/YYYY?"
|
||
|
|
||
|
DATE_UNDERSTANDING_PROMPT = """
|
||
|
# (Rest of the prompt code, but translated to Catalan)
|
||
|
""".strip() + '\n'
|
||
|
```
|
||
|
|
||
|
```python
|
||
|
llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))
|
||
|
print(llm_out)
|
||
|
```
|
||
|
|
||
|
```python
|
||
|
exec(llm_out)
|
||
|
print(born)
|
||
|
```
|
||
|
|
||
|
Això produirà el següent resultat: `02/27/1998`
|