Skip to main content

No project description provided

Project description

LLM Prompt Engineering Generator

PyPI - Version PyPI - Python Version


Installation

pip install llm-prompting-gen

What is LLM Prompt Engineering Generator?

Large language models (LLMs) are emerging as a transformative technology, enabling developers to build applications that they previously could not. However, fine-tune them is not always possible or too expansive. Prompt Engineering techniques like In-Context Learning or Few-Shot Learning tries to solve this problem. Based on langchain, this library enables prompt engineering in a straightforward way.

How can I use it?

This library consists of two main building blocks LLMs and Prompt Engineering. LLMs are provided by langchain, whereas the Prompt Engineering is part of this library. Both building blocks are combined in the generators module. The class PromptEngineeringGenerator defines all requirements for a LLM to generate text based on prompt engineering techniques. If you want your output to be parsed into an pydantic dataclass checkout the class ParsablePromptEngineeringGenerator.

Simple Example

# Task: extract keywords
# Wiki article about gen AI
text_with_keywords = """
Generative artificial intelligence (also generative AI or GenAI[1]) is artificial intelligence capable of generating text, images, or other media, using generative models.[2][3][4] Generative AI models learn the patterns and structure of their input training data and then generate new data that has similar characteristics.
In the early 2020s, advances in transformer-based deep neural networks enabled a number of generative AI systems notable for accepting natural language prompts as input. These include large language model chatbots such as ChatGPT, Bing Chat, Bard, and LLaMA, and text-to-image artificial intelligence art systems such as Stable Diffusion, Midjourney, and DALL-E.
"""
from llm_prompting_gen.generators import PromptEngineeringGenerator
from llm_prompting_gen.models.prompt_engineering import PromptElements
from langchain.chat_models import ChatOpenAI

## Option 1: Simply load a JSON or YAML file following the format of llm_prompting_gen.models.prompt_engineering.PromptElements
# Make sure env variable OPENAI_API_KEY is set
llm = ChatOpenAI(temperature=0.0)
# JSON 
keyword_extractor = PromptEngineeringGenerator.from_json("templates/keyword_extractor.json", llm=llm)
# YAML
keyword_extractor = PromptEngineeringGenerator.from_yaml("templates/keyword_extractor.yaml", llm=llm)
llm_output = keyword_extractor.generate(text=text_with_keywords)

## Option 2: Simply create a Prompt Engineering class yourself
prompt_elements = PromptElements(role="You are a keyword extractor", instruction="Extract the keyword from the text delimited by '''", input="'''{text}'''")
llm = ChatOpenAI(temperature=0.0)
keyword_extractor = PromptEngineeringGenerator(llm=llm, prompt_elements=prompt_elements)
llm_output = keyword_extractor.generate(text=text_with_keywords)

How to customise the class for my own use case?

The class PromptEngineeringGenerator contains two core parts 1. LLM 2. prompt engineering dataclass. If you want to initialise the generator class for your custom use case, you need to define a prompt engineering JSON file matching the format of llm_prompting_gen.models.prompt_engineering.PromptElements.

The JSON file can contain the following prompt elements in any combination tailored to your use case:

Role: The role in which the LLM should respond

Instruction: The task of the LLM

Context: Context with relevant information to solve the task

Output Format: Description how the LLM output format should look like

Few Shot Examples: Few shot examples with optional introduction

Input: Target which the LLM should execute the task on. Could be for example a user question, or a text block to summarize.

Showcases

License

llm-prompting-gen is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llm_prompting_gen-0.1.10.tar.gz (31.5 kB view details)

Uploaded Source

Built Distribution

llm_prompting_gen-0.1.10-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file llm_prompting_gen-0.1.10.tar.gz.

File metadata

  • Download URL: llm_prompting_gen-0.1.10.tar.gz
  • Upload date:
  • Size: 31.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for llm_prompting_gen-0.1.10.tar.gz
Algorithm Hash digest
SHA256 038ba69e9c508876444f18cd14db7158a9129758e3c76efb1cc48a3a26d1eb48
MD5 721fcfc02525e9419872e6e6518f7527
BLAKE2b-256 410db87ed51fb4755eea57ae919840bfd481c8f1189173566765da4ef18fc4af

See more details on using hashes here.

File details

Details for the file llm_prompting_gen-0.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_prompting_gen-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 aeaf00de840511b152226f42e78a8bf585531e0d8a75b3eae17eebdc4aeec257
MD5 d84eb7f192817a832e8df8cc25211407
BLAKE2b-256 07fb41bca50e947bb9a1df5f221217f7ca9c7a1732674e58e91b2e75e7e38d90

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page