![LangForge](https://github.com/mme/langforge/raw/main/docs/img/header.png "LangForge")
LangForge is an **open-source toolkit** designed to make it easy to create and deploy **_LangChain applications_**.
## Features
- Simplified environment setup and API key management
- Predefined notebooks for various use cases to help you get started quickly
- Instantly chat with your chains using the Jupyter integration
- Automatic REST interface generation for your app
## Installation
To install LangForge, simply run the following command:
```bash
pip install langforge-ai
```
## Getting Started
Use the create command to generate a new LangChain app.
LangForge will ask you a couple of questions, then set up a virtual environment, install required packages, and configure API keys, providing a ready-to-use foundation for your app.
```bash
langforge create myapp
```
When prompted to edit your API keys, input your OpenAI API key.
### Launch JupyterLab
Next, run the langforge lab command to launch Jupyter Lab.
```bash
cd myapp
langforge lab
```
Your project comes with ready-to-use templates for various use cases and an integration that allows you to chat with your chains directly within Jupyter.
In this example, we select the "Creative ChatGPT" template.
![Templates](https://github.com/mme/langforge/raw/main/docs/img/templates.png "Templates")
### Develop your LangChain app
Now that we have our notebook open, let's run the code.
Select `Kernel > Restart Kernel and Run All Cells...`
This template will make ChatGPT behave like an old school adventure game. To play with it, click the smiling robot face on the upper right to open a chat window.
![Chat](https://github.com/mme/langforge/raw/main/docs/img/chat.png "Chat")
Great! Note that upon running the first cell, a table displaying your API keys will appear. If your OpenAI key was not set during app creation, simply click the edit button and input your key.
```python
# make sure all packages are installed and environment variables are set
%setup langchain openai
```
![API Key](https://github.com/mme/langforge/raw/main/docs/img/api-key.png "API Key")
Let's change the prompt to customize our adventure. You can come up with any scenario you want. In this tutorial, we will go for a space adventure.
```python
template = """This is a conversation between a human and a system called AdventureGPT.
AdventureGPT is designed to create immersive and engaging text-based adventure games.
AdventureGPT is capable of understanding both simple commands, such as 'look,' and more
complex sentences, allowing it to effectively interpret the player's intent.
This adventure takes place in space. The player steps into the role of Captain Bravado,
a fearless and charismatic leader of the starship 'Infinity Chaser'.
Tasked with navigating the uncharted reaches of the cosmos, Captain Bravado and their
loyal crew must overcome various challenges, solve intricate puzzles, and make critical
decisions that will shape the fate of their mission and the future of interstellar
exploration.
"""
```
Now rerun the cell and find yourself in an immersive space adventure!
### Serve your app
LangForge automatically generates a REST interface for your app, making it easy to deploy and share with others. When you are happy with your app, use the `serve` command followed by the name of your notebook to start serving your app.
```bash
langforge serve chat-creative.ipynb
```
We can now use curl to send HTTP requests to our app:
```
curl -X POST -H "Content-Type: application/json" -d '{"input": "look", "memory": []}' http://localhost:2204/chat/gpt_adventure
```
Note that we include two keys in the JSON: input, which represents the user's command or message, and memory, which holds the conversation history to maintain context and continuity in the interaction.
## Contributing
We welcome contributions from the community! If you'd like to contribute to LangForge, please feel free to submit pull requests or open issues on our GitHub repository.
## License
LangForge is released under the MIT License.
Raw data
{
"_id": null,
"home_page": "https://github.com/mme/langforge",
"name": "langforge-ai",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "Markus Ecker",
"author_email": "markus.ecker@gmail.com",
"download_url": "",
"platform": null,
"description": "![LangForge](https://github.com/mme/langforge/raw/main/docs/img/header.png \"LangForge\")\n\nLangForge is an **open-source toolkit** designed to make it easy to create and deploy **_LangChain applications_**.\n\n## Features\n\n- Simplified environment setup and API key management\n- Predefined notebooks for various use cases to help you get started quickly\n- Instantly chat with your chains using the Jupyter integration\n- Automatic REST interface generation for your app\n\n## Installation\n\nTo install LangForge, simply run the following command:\n\n```bash\npip install langforge-ai\n```\n\n## Getting Started\n\nUse the create command to generate a new LangChain app.\n\nLangForge will ask you a couple of questions, then set up a virtual environment, install required packages, and configure API keys, providing a ready-to-use foundation for your app.\n\n```bash\nlangforge create myapp\n```\n\nWhen prompted to edit your API keys, input your OpenAI API key.\n\n### Launch JupyterLab\n\nNext, run the langforge lab command to launch Jupyter Lab.\n\n```bash\ncd myapp\nlangforge lab\n```\n\nYour project comes with ready-to-use templates for various use cases and an integration that allows you to chat with your chains directly within Jupyter.\n\nIn this example, we select the \"Creative ChatGPT\" template.\n\n![Templates](https://github.com/mme/langforge/raw/main/docs/img/templates.png \"Templates\")\n\n### Develop your LangChain app\n\nNow that we have our notebook open, let's run the code.\n\nSelect `Kernel > Restart Kernel and Run All Cells...`\n\nThis template will make ChatGPT behave like an old school adventure game. To play with it, click the smiling robot face on the upper right to open a chat window.\n\n![Chat](https://github.com/mme/langforge/raw/main/docs/img/chat.png \"Chat\")\n\nGreat! Note that upon running the first cell, a table displaying your API keys will appear. If your OpenAI key was not set during app creation, simply click the edit button and input your key.\n\n```python\n# make sure all packages are installed and environment variables are set\n%setup langchain openai\n```\n\n![API Key](https://github.com/mme/langforge/raw/main/docs/img/api-key.png \"API Key\")\n\nLet's change the prompt to customize our adventure. You can come up with any scenario you want. In this tutorial, we will go for a space adventure.\n\n```python\ntemplate = \"\"\"This is a conversation between a human and a system called AdventureGPT.\n\nAdventureGPT is designed to create immersive and engaging text-based adventure games.\n\nAdventureGPT is capable of understanding both simple commands, such as 'look,' and more\ncomplex sentences, allowing it to effectively interpret the player's intent.\n\nThis adventure takes place in space. The player steps into the role of Captain Bravado,\na fearless and charismatic leader of the starship 'Infinity Chaser'.\nTasked with navigating the uncharted reaches of the cosmos, Captain Bravado and their\nloyal crew must overcome various challenges, solve intricate puzzles, and make critical\ndecisions that will shape the fate of their mission and the future of interstellar\nexploration.\n\"\"\"\n```\n\nNow rerun the cell and find yourself in an immersive space adventure!\n\n### Serve your app\n\nLangForge automatically generates a REST interface for your app, making it easy to deploy and share with others. When you are happy with your app, use the `serve` command followed by the name of your notebook to start serving your app.\n\n```bash\nlangforge serve chat-creative.ipynb\n```\n\nWe can now use curl to send HTTP requests to our app:\n\n```\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"input\": \"look\", \"memory\": []}' http://localhost:2204/chat/gpt_adventure\n```\n\nNote that we include two keys in the JSON: input, which represents the user's command or message, and memory, which holds the conversation history to maintain context and continuity in the interaction.\n\n## Contributing\n\nWe welcome contributions from the community! If you'd like to contribute to LangForge, please feel free to submit pull requests or open issues on our GitHub repository.\n\n## License\n\nLangForge is released under the MIT License.\n",
"bugtrack_url": null,
"license": "",
"summary": "A Toolkit for Creating and Deploying LangChain Apps",
"version": "0.1.6",
"project_urls": {
"Homepage": "https://github.com/mme/langforge"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "546b63badb6978de672b177785893ae3dc011052244409d70363d54ebbeb772a",
"md5": "ccc8ac81b567bfefb429b5561dbda1b2",
"sha256": "d9cc9bfc40b624ec515d5775b5d9c0fe57154ba1441fd0c5496cba1b2b79d389"
},
"downloads": -1,
"filename": "langforge_ai-0.1.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ccc8ac81b567bfefb429b5561dbda1b2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 8770972,
"upload_time": "2023-05-03T11:29:30",
"upload_time_iso_8601": "2023-05-03T11:29:30.031059Z",
"url": "https://files.pythonhosted.org/packages/54/6b/63badb6978de672b177785893ae3dc011052244409d70363d54ebbeb772a/langforge_ai-0.1.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-03 11:29:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mme",
"github_project": "langforge",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "langforge-ai"
}