Git Product home page Git Product logo

promptdesk / promptdesk Goto Github PK

View Code? Open in Web Editor NEW
34.0 34.0 4.0 9.92 MB

Promptdesk is a tool designed for effectively creating, organizing, and evaluating prompts and large language models (LLMs).

Home Page: https://promptdesk.ai/docs/quickstart

License: GNU Affero General Public License v3.0

JavaScript 4.00% Dockerfile 0.05% TypeScript 52.83% CSS 40.37% HTML 1.25% Shell 0.94% SCSS 0.57%
javascript-library large-language-models llm llm-agent llm-apps llmops llms prompt-engineering prompt-toolkit prompt-tuning prompts python-library software-engineering

promptdesk's Introduction


pypi npm docker docker pulls AGPLv3

Bold Innovation, Simplified AI

PromptDesk is 100% free and open-source minimalist tool to facilitate the creation, organization, integration, and evaluation of prompts, prompt-based applications, agents and Large Language Models (LLMs).

Quickstart Guide »

Features · Podcast · Articles · Contributors · Community

Available in: Python - JavaScript

If you like this project, please consider giving this repo a ⭐️ star.

Alt Text

Features

  • 🤝 Cross-team Collaboration
  • 📚 Comprehensive Documentation
  • 📅 Deploy One-click Apps for Sharing
  • 👨‍💻 Python and Javascript SDK
  • 🏠 Local or Proxied Calls
  • 📈 Comprehensive Logs
  • ♾️ Unlimited Models
  • 🔐 Data Privacy and Security
  • 🌐 Any model, any scale
  • 🚀 Easy to set up and integrate (5 minutes)

🚀 Getting Started and Installation

To get started with PromptDesk OS, visit promptdesk.ai/docs/quickstart for the installation script. It's a simple, two-line install process that takes an average of just 5 minutes from start to finish.

PromptDesk OS is a self-hosted, 100% free and open-source Docker container that can be deployed anywhere.

You can also jump straight to building prompts or start integrating prompts in python or javascript.

Python SDK

Using the PromptDesk Python SDK, you can easily integrate your prompts into your Python applications.

pip install promptdesk

You can call the prompt you build in the application by using the generate method.

from promptdesk import PromptDesk

pd = PromptDesk(
    api_key = "YOUR_PROMPTDESK_API_KEY", #find in /settings
    service_url = "http://localhost"
)

story = pd.generate("short-story-test", {
    "setting": "dark and stormy night",
    "character": "lonely farmer",
    "plot": "visited by a stranger"
})

print(story)

JavaScript SDK

Using the PromptDesk JavaScript SDK, you can easily integrate your prompts into your Python applications.

npm install promptdesk

You can call the prompt you build in the application by using the generate method.

import { PromptDesk } from 'promptdesk'; //ES6
//const { PromptDesk } = require('promptdesk'); //CommonJS

var pd = new PromptDesk({
    apiKey: "YOUR_PROMPTDESK_API_KEY", //find in /settings
    serviceUrl: "http://localhost"
})

const story = await pd.generate("short-story-test", {
    "setting": "dark and stormy night",
    "character": "lonely farmer",
    "plot": "visited by a stranger"
})

console.log(story)

🔗 Important Links

For more information about PromptDesk, please refer to the following resources:

promptdesk's People

Contributors

bhuvaneshpatil avatar genixpro avatar justinmacorin avatar samuyoon avatar seattlereactdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

promptdesk's Issues

Disabled input is not distinguishable

When we hover over the prompt name, it's not apparent that the input is disabled.

Screenshot 2024-01-31 at 1 13 18 AM
Screen.Recording.2024-01-31.at.1.14.27.AM.mov

We shall have disabled (not allowed) cursor on disabled input.

Improvement for model page delete workflow

  • Change color to red, to depict it's dangerous action
  • ask for confirmation before performing action, as delete can't be reverted and if user clicks on delete by mistake he loses the data.

Add test data functionality

Allow developers to add test data with variables.

Idea: Test data can be a JSON object with attributes as variable names. These attributes can map to to prompt variables. This would allow engineers to quickly test a dataset to see how well a certain prompt/model is performing.

This may require the following:

  • a new database table for datasets
  • a new REST API to retrieve, edit, and delete a dataset and their items.
  • a new page on the front-end that lists datasets available.
  • the option to use a dataset for a prompt

ENHANCEMENT (UI/UX) - Modal

This issue will enhance the modals on our web app.

  • Add close icon on top.
  • When we press escape, it shall close the modal

Add source code editor

Implement a source code editor instead of using a HTML contenteditable DIV for the model editor.

Reasoning: Validating, writing, and reading JSON is challenging with no styling. A source code editor can help with this. In addition, it can be used for future source-code related features - like code execution, source code modification, etc.

Files:

  • frontend/pages/models.tsx (modify the contenteditable pre tag)
  • NEW CodeEditor.tsx file

Here is an example of a good code editor: https://microsoft.github.io/monaco-editor/

Add server-side caching

Query the database for identical prompt before executing a model.

Possible ideas:

  • hash prompt and add hash to logs for easy retrieval
  • use a cache:true attribute on the prompt-desk api call
  • possibly log that a cached request was serverd?

Add log export feature

Allow user to export logs from the repo. This includes RAW POST/GET requests to LLM APIs, formatted input, output, and variables included.

Reasoning: Developers should never be tied into a single platform or provider for AI-related data.

Files required:

  • backend/src/routes/api/logs.ts (add backend download function)
  • frontend/src/stores/LogStore.tsx (add front-end download function)
  • frontend/pages/logs.tsx (add download button)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.