A new open-standard specification for LLM-backed systems and an SDK for building on it
Project description
FreewayAI
Welcome to FreewayAI: a new open-standard specification for LLM-backed systems
Freeway is meant to provide a simple, flexible, enxtensible and lightweight standard for managing prompt templates, database query templates, user input points, and LLM-backed system diagrams.
The units of FreewayAI
The unit elements of Freeway are as follows:
- Prompt Templates
- Database Query Templates
- User Inputs
These units can then be used to construct a diagram of a system structure, to indicate the general flow of data.
We know that systems built on LLMs are full of json parsing, for loops, if statements, and regexes. We just think that you should focus on outlining the LLM-specific components of a system.
We also believe that prompt templates should be managed out of code, where they can be edited on their own lifecycle.
Installation
pip install freewayai
Usage
Project Structure
system_configs/
├─ my_system/
│ ├─ database_templates.json
│ ├─ prompt_templates.json
│ ├─ system_structure.json
│ ├─ user_inputs.json
├─ my_second_system/
│ ├─ database_templates.json
│ ├─ prompt_templates.json
│ ├─ system_structure.json
│ ├─ user_inputs.json
index.py
Example prompt_templates.json file
{
"templates": {
"pirate_talk": {
"prompt_id": "pirate_talk",
"prompt_template": "Respond to this question from the user but talk like a pirate: {question}. Answer: ",
"variables": [
{
"name": "question",
"source": "user"
}
]
},
"shakespeare_talk": {
"prompt_id": "shakespeare_talk",
"prompt_template": "Respond to this question from the user but talk like Shakespeare: {question}. Answer: ",
"variables": [
{
"name": "question",
"source": "user"
}
]
},
}
}
Example SDK Usage
from openai import OpenAI
from freewayai import LLMSystem
SYSTEM_LOCATION = "system_configs/"
my_system = LLMSystem(SYSTEM_LOCATION, "my_system")
variables = {
"question": input()
}
pirate_prompt = my_system.get_formatted_prompt("pirate_talk", variables)
formatted_pirate_prompt = pirate_prompt.to_openai()
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-3.5-turbo-0125",
messages = formatted_pirate_prompt,
temperature=0.2
)
print(completion.choices[0].message.content)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file freewayai-0.1.2.tar.gz.
File metadata
- Download URL: freewayai-0.1.2.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42a01698bf4115a54af58a74aa9eb6f097f66e566629c43143b631cd4d8b27d5
|
|
| MD5 |
37d4f8a811d410dd97f807e80084b763
|
|
| BLAKE2b-256 |
d441f640fbffc8ff1e294e28e50407f50e11b174e3f55ad7b9c7aea9ef100fea
|
File details
Details for the file freewayai-0.1.2-py3-none-any.whl.
File metadata
- Download URL: freewayai-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b0ce9d57b8341a732a49822bf76401ecd6403fa20a4f8b6b6000dd69a1fc199
|
|
| MD5 |
79b4244b1aa8a5078a14de16ea8b6931
|
|
| BLAKE2b-256 |
de30c4a93566931963f7ff671feb8d80cee68a5ca125dc879807c9ca183e35d0
|