Skip to content

Commit da6e3a0

Browse files
committed
Merge branch 'langchain-template'
2 parents baa8771 + 730fde8 commit da6e3a0

File tree

1 file changed

+133
-7
lines changed

1 file changed

+133
-7
lines changed

README.md

+133-7
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ create-fastapi-project
1010
```
1111

1212
After you that you are going to see an interactive screen like this:
13-
<p align="center">
14-
<img src="static/terminal.png" align="center"/>
15-
</p>
13+
14+
![create-app-terminal](https://res.cloudinary.com/dnv0qwkrk/image/upload/v1692746180/Allient/create-fastapi-project/demo-create-fastapi-final_fyirob.gif)
1615

1716
## Getting Started
1817

@@ -24,8 +23,8 @@ After your project is created. First, make sure you have all packages installed:
2423
make install
2524
```
2625

27-
2826
Run the server:
27+
2928
```bash
3029
# Run locally without docker
3130
make run-app
@@ -40,7 +39,6 @@ make run-dev-build
4039
make run-prod
4140
```
4241

43-
4442
## Learn More
4543

4644
To learn more about Fastapi, take a look at the following resources:
@@ -54,6 +52,136 @@ To learn more about Fastapi, take a look at the following resources:
5452
- [fastapi-best-practices](https://github.com/zhanymkanov/fastapi-best-practices).
5553
- [awesome-fastapi](https://github.com/mjhea0/awesome-fastapi).
5654

55+
## Templates
56+
57+
### Basic
58+
59+
<details>
60+
<summary>Click me</summary>
61+
62+
We're excited to introduce you to our FastAPI Basic Project Template, carefully designed to jumpstart your FastAPI development journey. This template offers you a pre-configured project with a fundamental FastAPI setup and an organized folder structure, allowing you to hit the ground running.
63+
64+
## Folder Structure
65+
66+
```bash
67+
└───app
68+
├───app
69+
│ ├───api
70+
│ │ └───v1
71+
│ │ └───endpoints
72+
│ ├───core
73+
│ ├───schemas
74+
│ └───utils
75+
│ └───exceptions
76+
└───test
77+
```
78+
79+
</details>
80+
81+
### Langchain Basic
82+
83+
<details>
84+
<summary>Click me</summary>
85+
86+
We're thrilled to introduce you to the LangChain project template, designed to accelerate your development process. This template serves as a solid foundation for your project, complete with essential features and an organized folder structure, all thoughtfully configured and ready for use.
87+
88+
## Folder Structure
89+
90+
```bash
91+
app
92+
├───app
93+
│ ├───api
94+
│ │ └───v1
95+
│ │ └───endpoints
96+
│ ├───core
97+
│ ├───schemas
98+
│ ├───templates
99+
│ │ └───general_pages
100+
│ └───utils
101+
│ ├───adaptive_cards
102+
│ └───exceptions
103+
└───test
104+
```
105+
106+
## Tools
107+
108+
- Search weather tool ![weather-tool](https://res.cloudinary.com/dnv0qwkrk/image/upload/v1692746086/Allient/create-fastapi-project/weather-tool-demo_lgqtwu.gif)
109+
- Search images tool ![images-tool](https://res.cloudinary.com/dnv0qwkrk/image/upload/v1692746086/Allient/create-fastapi-project/search-images-demo_mkorzv.gif)
110+
- Search videos tool ![videos-tool](https://res.cloudinary.com/dnv0qwkrk/image/upload/v1692746087/Allient/create-fastapi-project/search-videos-demo_wikzn1.gif)
111+
- Search pokemon tool ![pokemon-tool](https://res.cloudinary.com/dnv0qwkrk/image/upload/v1692746086/Allient/create-fastapi-project/pokemon-tool-demo_ggsc63.gif)
112+
</details>
113+
114+
### Full
115+
116+
<details>
117+
<summary>Click me</summary>
118+
119+
This is a project template which uses [FastAPI](https://fastapi.tiangolo.com/), [Alembic](https://alembic.sqlalchemy.org/en/latest/) and async [SQLModel](https://sqlmodel.tiangolo.com/) as ORM. It shows a complete async CRUD template using authentication. Our implementation utilizes the newest version of FastAPI and incorporates typing hints that are fully compatible with **Python 3.10** and later versions. If you're looking to build modern and efficient web applications with Python, this template will provide you with the necessary tools to get started quickly. You can read a short article with the motivations for starting this sample project [here](https://medium.com/allient/our-journey-using-async-fastapi-to-harnessing-the-power-of-modern-web-apis-90301827f14c?source=friends_link&sk=9006b3f2a4137a28a8576a69546c8c18).
120+
121+
## Why Use This Template?
122+
123+
Developing web applications can be a challenging process, especially when dealing with databases, authentication, asynchronous tasks, and other complex components. Our template is designed to simplify this process and offer you a solid starting point. Some of the highlights of this template include:
124+
125+
- FastAPI Integration: FastAPI is a modern and efficient web framework that allows you to quickly and easily create APIs. This template uses the latest features of FastAPI and offers type hints that are compatible with **Python 3.10** and later versions.
126+
- Asynchronous Database Management: We use SQLModel, an asynchronous ORM library, to interact with the database efficiently and securely.
127+
- Asynchronous Tasks with Celery: This template includes examples of how to execute asynchronous and scheduled tasks using Celery, which is ideal for operations that require significant time or resources.
128+
- Authentication and Authorization: We implement JWT-based authentication and role-based access control to ensure that your APIs are secure and protected.
129+
- Documentation and Automated Testing: The template is configured to automatically generate interactive documentation for your APIs. It also includes automated tests using pytest to ensure code quality.
130+
- Development Best Practices: We apply code formatting, type checking, and static analysis tools to ensure that the code is readable, robust, and reliable.
131+
132+
## Folder Structure
133+
134+
```bash
135+
.
136+
├───.github
137+
│ └───workflows
138+
├───.vscode
139+
├───backend
140+
│ └───app
141+
│ ├───alembic
142+
│ │ └───versions
143+
│ ├───app
144+
│ │ ├───api
145+
│ │ │ └───v1
146+
│ │ │ └───endpoints
147+
│ │ ├───core
148+
│ │ ├───crud
149+
│ │ ├───db
150+
│ │ ├───deps
151+
│ │ ├───models
152+
│ │ ├───schemas
153+
│ │ ├───utils
154+
│ │ │ └───exceptions
155+
│ └───test
156+
│ └───api
157+
├───caddy
158+
├───db_docker
159+
├───docs
160+
├───minio
161+
├───pgadmin
162+
├───sonarqube
163+
├───static
164+
└───terraform
165+
```
166+
167+
## Stack
168+
169+
- [FastAPI](https://fastapi.tiangolo.com/) - A modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.
170+
- [Pydantic](https://docs.pydantic.dev/latest/) - A library for data validation and settings management based on Python type hints.
171+
- [SQLModel](https://sqlmodel.tiangolo.com/) - A library for interacting with SQL databases from Python code, with Python objects.
172+
- [Alembic](https://alembic.sqlalchemy.org/en/latest/) - A lightweight database migration tool for usage with the SQLAlchemy Database Toolkit for Python.
173+
- [Caddy](https://caddyserver.com/) - A powerful, enterprise-ready, open source web server with automatic HTTPS written in Go.
174+
- [Docker](https://www.docker.com/) - A set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.
175+
- [PostgreSQL](https://www.postgresql.org/) - A powerful, open source object-relational database system.
176+
- [PGAdmin](https://www.pgadmin.org/) - The most popular and feature rich Open Source administration and development platform for PostgreSQL.
177+
- [Celery](https://docs.celeryq.dev/en/stable/) - A simple, flexible, and reliable distributed system to process vast amounts of messages, while providing operations with the tools required to maintain such a system.
178+
- [Redis](https://redis.io/) - An open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker.
179+
- [Minio](https://min.io/) - A high performance distributed object storage server, designed for large-scale private cloud infrastructure.
180+
- [SonarQube](https://www.sonarqube.org/) - An open source platform for continuous inspection of code quality.
181+
- [Pytest](https://docs.pytest.org/en/stable/) - A framework that makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.
182+
183+
</details>
184+
57185
## Why use Create FastAPI Project?
58186

59187
`create-fastapi-project` provides a streamlined way to kickstart your FastAPI projects. Here are some compelling reasons to choose it for your project setup:
@@ -70,10 +198,8 @@ Running `create-fastapi-project` (with no arguments) launches an interactive exp
70198

71199
`create-fastapi-project` is maintained by the [Allient development team](https://www.allient.io/). Our team is composed by a experienced professionals specializing in FastAPI projects and NLP. If you need assistance or support for your project, please don't hesitate to get in touch with us at [[email protected]](mailto:[email protected]) or schedule a meeting with us [here](https://calendly.com/jonathanvargas).
72200

73-
74201
You can check out the [create-fastapi-project GitHub repository](https://github.com/allient/create-fastapi-project) - your feedback and contributions are welcome ❤️!
75202

76-
77203
## License
78204

79205
[![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org)

0 commit comments

Comments
 (0)