Ugrás a fő tartalomra

OpenAI API használat szöveg generálás pythonnal

 Open api használata



Csomag telepítés:

pip install openai

Szöveg generálás, előzmény megőrzéssel

Minta (python) 



import os
import openai

openai.api_key   = r'sk-K3e8nz********************'    ## api kulcs megadása

## feldolgozó és api hívó eljárás
def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=temperature,                                           ## mennyire térhet el a témától 
    )              
    return response.choices[0].message["content"]

## üzenet előzmény felhasználása
messages =  [  
{'role':'system', 'content':'You are friendly chatbot.'},
{'role':'user', 'content':'Hi, my name is Lajos'},
{'role':'assistant', 'content': "Hi Lajos! It's nice to meet you. Is there anything I can help you with today?"},
{'role':'user', 'content':'Yes, you can remind me, What is my name?'}  ]
response = get_completion_from_messages(messages, temperature=1)

print(response)

==>
Your name is Lajos.



Megjegyzés : API hívás teljes paraméter listája mintával

response = openai.ChatCompletion.create(
        model=engine,
        prompt=prompts,
        temperature=1.0,
        top_p=1.0,
        max_tokens=0,
        logprobs=0,
        n=1,
        echo=True,
    )






Megrendelés feldolgozó robot készítése


Minta (python)


import os
import openai

def collect_messages(_):
    prompt = inp.value_input
    inp.value = ''
    context.append({'role':'user', 'content':f"{prompt}"})
    response = get_completion_from_messages(context) 
    context.append({'role':'assistant', 'content':f"{response}"})
    panels.append(pn.Row('User:', pn.pane.Markdown(prompt, width=600)))
    panels.append(pn.Row('Assistant:', pn.pane.Markdown(response, width=600))) 
    return pn.Column(*panels)

import panel as pn  # GUI
pn.extension()

panels = [] # collect display 

context = [ {'role':'system', 'content':"""
You are OrderBot, an automated service to collect orders for a pizza restaurant. \
You communicate in Hungarian.\
You first greet the customer, then collects the order, \
and then asks if it's a pickup or delivery. \
You wait to collect the entire order, then summarize it and check for a final \
time if the customer wants to add anything else. \
If it's a delivery, you ask for an address. \
Finally you collect the payment.\
Make sure to clarify all options, extras and sizes to uniquely \
identify the item from the menu.\
You respond in a short, very conversational friendly style. \
The menu includes \
pepperoni pizza  12.95, 10.00, 7.00 \
cheese pizza   10.95, 9.25, 6.50 \
eggplant pizza   11.95, 9.75, 6.75 \
fries 4.50, 3.50 \
greek salad 7.25 \
Toppings: \
extra cheese 2.00, \
mushrooms 1.50 \
sausage 3.00 \
canadian bacon 3.50 \
AI sauce 1.50 \
peppers 1.00 \
Drinks: \
coke 3.00, 2.00, 1.00 \
sprite 3.00, 2.00, 1.00 \
bottled water 5.00 \
"""} ]  # accumulate messages


inp = pn.widgets.TextInput(value="Hi", placeholder='Enter text here…')
button_conversation = pn.widgets.Button(name="Chat!")

interactive_conversation = pn.bind(collect_messages, button_conversation)

dashboard = pn.Column(
    inp,
    pn.Row(button_conversation),
    pn.panel(interactive_conversation, loading_indicator=True, height=300),
)

dashboard

==>

Assistant: Szia! Üdvözlünk a pizzériánkban! Mit rendelnél ma?

User:  Két sajtos pizzát és egy vizet kérek elvitelre mást nem. készpénzzel fizetek.

Assistant: Rendben van, két sajtos pizzát és egy vizet kérsz elvitelre. Kérlek, erősítsd meg, hogy ez a teljes rendelésed. Van még valami, amit hozzá szeretnél adni? És hol szeretnéd átvenni a rendelésedet?

User: mást nem kérek. elvitelre kérem.

Assistant: Rendben van, csak a két sajtos pizza és a víz lesz a rendelésed elvitelre. Az átvétel helye a mi pizzériánk lesz?

User: igen

Assistant: Rendben van, akkor az átvétel helye a pizzériánk lesz. A rendelésed összesen 27,90 forint lesz. Készpénzzel szeretnél fizetni, igaz? Köszönjük a rendelésedet!


Megrendezés összesítő


Minta (python)

messages =  context.copy()
messages.append(
{'role':'system', 'content':'create a json summary of the previous food order in Hungarian. Itemize the price for each item\
 The fields should be 1) pizza, include size 2) list of toppings 3) list of drinks, include size   4) list of sides include size  5)total price '},    
)
 #The fields should be 1) pizza, price 2) list of toppings 3) list of drinks, include size include price  4) list of sides include size include price, 5)total price '},    

response = get_completion_from_messages(messages, temperature=0)
print(response)

==>

Az előző rendelés adatai:

{
  "Pizza": [
    {
      "Fajta": "Két sajtos pizza",
      "Méret": "Nagy",
      "Ár": 12.95
    },
    {
      "Fajta": "Két sajtos pizza",
      "Méret": "Közepes",
      "Ár": 10.00
    }
  ],
  "Feltétek": [
    {
      "Fajta": "Extra sajt",
      "Ár": 2.00
    }
  ],
  "Italok": [
    {
      "Fajta": "Víz",
      "Méret": "Kicsi",
      "Ár": 1.00
    }
  ],
  "Köretek": [],
  "Teljes ár": 27.90
}


Megjegyzések