Skip to main content

Morph is a python-centric full-stack framework for building and deploying data apps.

Project description

Header

Features

Morph is a python-centric full-stack framework for building and deploying AI apps.

  • Fast to start 🚀 - Allows you to get up and running with just three commands.
  • Deploy and operate 🌐 - Easily deploy your AI apps and manage them in production. Managed cloud is available for user authentication and secure data connection.
  • No HTML/CSS knowledge required🔰 - With Markdown-based syntax and pre-made components, you can create flexible, visually appealing designs without writing a single line of HTML or CSS.
  • Customizable 🛠️ - Chain Python and SQL for advanced AI workflows. Custom CSS and custom React components are available for building tailored UI.

Quick start

  1. Install morph
pip install morph-data
  1. Create a new project
morph new
  1. Start dev server
morph serve
  1. Visit http://localhsot:8080 on browser.

How it works

Understanding the concept of developing an AI app in Morph will let you do a flying start.

  1. Develop the AI workflow in Python and give it an alias.
  2. Create an .mdx file. Each .mdx file becomes a page of your app.
  3. Place the component in the MDX file and specify the alias to connect to.
.
├─ pages
│  └─ index.mdx
└─ python
   └─ chat.py

Building AI Apps

A little example

  1. Create each files in python and pages directories.

Python: Using Langchain to create a AI workflow.

import morph
from morph import MorphGlobalContext
from morph_lib.stream import stream_chat
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

@morph.func
def langchain_chat(context: MorphGlobalContext):
    llm = ChatOpenAI(model="gpt-4o")
    messages = [HumanMessage(context.vars["prompt"])]
    for token in llm.stream(messages):
        yield stream_chat(token.content)

MDX: Define the page and connect the data.

# 🦜🔗 Langchain Chat

<Chat postData="langchain_chat" height={300} />
  1. Run morph serve to open the app!

AI App

Documentation

Visit https://docs.morph-data.io for more documentation.

Contributing

Thanks for your interest in helping improve Morph ❤️

  • Before contributing, please read the CONTRIBUTING.md.
  • If you find any issues, please let us know and open an issue.

Lisence

Morph is Apache 2.0 licensed.

Download files

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

Source Distribution

morph_data-0.3.1.tar.gz (94.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

morph_data-0.3.1-py3-none-any.whl (124.9 kB view details)

Uploaded Python 3

File details

Details for the file morph_data-0.3.1.tar.gz.

File metadata

  • Download URL: morph_data-0.3.1.tar.gz
  • Upload date:
  • Size: 94.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.9.4 Darwin/23.3.0

File hashes

Hashes for morph_data-0.3.1.tar.gz
Algorithm Hash digest
SHA256 462276a7e5973807812cc17da4ab2879e1d94e7beb963c6955139360b6641962
MD5 3f12843dbe23efa31ecb85f2de414b83
BLAKE2b-256 3ce55254717ca341a7b8747ed061bca7aa29a0c50eda38dea9b4ae885c5fffa9

See more details on using hashes here.

File details

Details for the file morph_data-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: morph_data-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 124.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.9.4 Darwin/23.3.0

File hashes

Hashes for morph_data-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a0a3ae34366cf167476ef54d0dd3f0f7685b2b42a3823b0188a36a874d5cc790
MD5 f78f94fbe8e1ec16a0804ba8eb9ce28d
BLAKE2b-256 6caf63386d1907010acc2b093eecd3cf32c43e74f07b7ecce16656e629fe8da4

See more details on using hashes here.

Supported by

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