Heim >Backend-Entwicklung >Python-Tutorial >Lassen Sie uns darüber sprechen, wie man eine tolle Erinnerungs-App gestaltet.

Lassen Sie uns darüber sprechen, wie man eine tolle Erinnerungs-App gestaltet.

王林
王林nach vorne
2023-04-24 18:49:091122Durchsuche

In diesem Leitfaden besprechen wir einige fortgeschrittene und interessante Möglichkeiten, wie wir Hint Engineering nutzen können, um nützliche und fortgeschrittenere Aufgaben auszuführen.

Bitte beachten Sie, dass dieser Abschnitt derzeit stark weiterentwickelt wird. Thema:

  • Daten generieren
  • Programmgestütztes Sprachmodell
  • Python-Notizbuch

1. Daten generieren

LLM verfügt über leistungsstarke Funktionen zur Textgenerierung. Der Einsatz effektiver Aufforderungsstrategien kann Modelle dabei unterstützen, bessere, konsistentere und sachlichere Antworten zu liefern. LLM ist auch besonders nützlich für die Generierung von Daten, die für die Durchführung verschiedener Experimente nützlich sind. Wir können damit zum Beispiel schnelle Stichproben für einen Sentiment-Klassifikator wie diesen generieren:

Swift:

Produce 10 exemplars for sentiment analysis. Examples are categorized as either positive or negative. Produce 2 negative examples and 8 positive examples. Use this format for the examples:
Q: <sentence>
A: <sentiment>

Ausgabe:

Q: 我刚得到了有史以来最好的消息!
A: 积极的

Q: 我们刚刚在工作中得到了加薪!
A: 积极的

Q: 我为今天所取得的成就感到非常自豪。
A: 积极的

Q: 我度过了有史以来最好的一天!
A: 积极的

Q: 我非常期待周末的到来。
A: 积极的

Q: 我刚收到了有史以来最好的礼物!
A: 积极的

Q: 我现在非常开心。
A: 积极的

Q: 我很幸运有这么一支了不起的家庭。
A: 积极的

Q: 外面的天气很阴暗。
A: 消极的

Q: 我刚得到了一些可怕的消息。
A: 消极的

Das ist sehr nützlich. Wir verwenden dieses Beispiel für einen anderen Test in einem anderen Teil des Leitfadens.

2. PAL (Program-Assisted Language Model)

Gao et al. (2022) schlugen eine Methode vor, um LLM zu verwenden, um Fragen in natürlicher Sprache zu lesen und Programme als Zwischenschritt zu generieren. Das erstellte programmunterstützte Sprachmodell (PAL) unterscheidet sich von Denkketten-Eingabeaufforderungen dadurch, dass es die Lösungsschritte nicht mithilfe von Freiformtext zur Lösungsfindung an eine Programmierlaufzeit, beispielsweise den Python-Interpreter, verlagert.


Lassen Sie uns darüber sprechen, wie man eine tolle Erinnerungs-App gestaltet.


Schauen wir uns ein Beispiel mit LangChain und OpenAI GPT-3 an. Wir sind daran interessiert, eine einfache Anwendung zu entwickeln, die in der Lage ist, die gestellten Fragen zu interpretieren und mithilfe des Python-Interpreters Antworten zu liefern.

Konkret geht es uns um die Schaffung einer Funktion, die es ermöglicht, mit LLM Fragen zu beantworten, die das Verständnis von Daten erfordern. Wir geben Tipps für LLM, einschließlich einiger Beispiele von hier.

Das sind die Importe, die wir brauchen:

import openai
from datetime import datetime
from dateutil.relativedelta import relativedelta
import os
from langchain.llms import OpenAI
from dotenv import load_dotenv

Lassen Sie uns zuerst ein paar Dinge konfigurieren:

load_dotenv()

API-Konfiguration

openai.api_key = os.getenv("OPENAI_API_KEY")

für LangChain

os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")

Richten Sie die Modellinstanz ein:

llm = OpenAI(model_name='text-davinci-003', temperature=0)

Einrichten von Eingabeaufforderungen + Fragen:

question = "Today is 27 February 2023. I was born exactly 25 years ago. What is the date I was born in MM/DD/YYYY?"

DATE_UNDERSTANDING_PROMPT = """
# Q: 2015 is coming in 36 hours. What is the date one week from today in MM/DD/YYYY?

# If 2015 is coming in 36 hours, then today is 36 hours before.

today = datetime(2015, 1, 1) - relativedelta(hours=36)

# One week from today,

one_week_from_today = today + relativedelta(weeks=1)

# The answer formatted with %m/%d/%Y is

one_week_from_today.strftime('%m/%d/%Y')

# Q: The first day of 2019 is a Tuesday, and today is the first Monday of 2019. What is the date today in MM/DD/YYYY?

# If the first day of 2019 is a Tuesday, and today is the first Monday of 2019, then today is 6 days later.

today = datetime(2019, 1, 1) + relativedelta(days=6)

# The answer formatted with %m/%d/%Y is

today.strftime('%m/%d/%Y')

# Q: The concert was scheduled to be on 06/01/1943, but was delayed by one day to today. What is the date 10 days ago in MM/DD/YYYY?

# If the concert was scheduled to be on 06/01/1943, but was delayed by one day to today, then today is one day later.

today = datetime(1943, 6, 1) + relativedelta(days=1)

# 10 days ago,

ten_days_ago = today - relativedelta(days=10)

# The answer formatted with %m/%d/%Y is

ten_days_ago.strftime('%m/%d/%Y')

# Q: It is 4/19/1969 today. What is the date 24 hours later in MM/DD/YYYY?

# It is 4/19/1969 today.

today = datetime(1969, 4, 19)

# 24 hours later,

later = today + relativedelta(hours=24)

# The answer formatted with %m/%d/%Y is

today.strftime('%m/%d/%Y')
# Q: Jane thought today is 3/11/2002, but today is in fact Mar 12, which is 1 day later. What is the date 24 hours later in MM/DD/YYYY?

# If Jane thought today is 3/11/2002, but today is in fact Mar 12, then today is 3/1/2002.

today = datetime(2002, 3, 12)

# 24 hours later,

later = today + relativedelta(hours=24)

# The answer formatted with %m/%d/%Y is

later.strftime('%m/%d/%Y')

# Q: Jane was born on the last day of Feburary in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?

# If Jane was born on the last day of Feburary in 2001 and today is her 16-year-old birthday, then today is 16 years later.

today = datetime(2001, 2, 28) + relativedelta(years=16)

# Yesterday,

yesterday = today - relativedelta(days=1)

# The answer formatted with %m/%d/%Y is

yesterday.strftime('%m/%d/%Y')

# Q: {question}

""".strip() + 'n'
e
llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))
print(llm_out)
exec(llm_out)
print(born)

Dies wird Folgendes ausgeben: 27.02.1998

Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie man eine tolle Erinnerungs-App gestaltet.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen