[AI] Vacation Planning - Recommendations, Costs, Weather
Some time ago, I made a Trip Planner Web App, based purely on weather patterns as described here.
[How to] Spin the Python Trip Planner! 📌
- Follow the repo instructions
git clone https://github.com/JAlcocerT/Py_Trip_Planner && cd ./Py_Trip_Planner
#docker build -t trip_planner .
DOCKER_BUILDKIT=1 docker build --no-cache --progress=plain -t trip_planner .
docker run -d \
--name tripplanner \
-p 8051:8050 \
--restart unless-stopped \
trip_planner #ghcr.io/jalcocert/py_trip_planner #fossengineer/trip_planner
Or…Use the following docker compose:
version: "2"
services:
tripplanner:
image: trip_planner #ghcr.io/jalcocert/py_trip_planner #fossengineer/trip_planner
container_name: tripplanner
ports:
- 8051:8050
restart: unless-stopped
But we need something more to decide where and how to go next.
THE USE CASE - Plan a Trip To MRK
Py-VacAItions
The project to know where/when to go and IF you can go
PyVacations Project Structure 📌
- _index.md
- _index.md
<li class="flex list-none"> <span class="inline-flex cursor-default items-center py-1"><svg width=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg><span class="ml-1">getting-started.md</span> </span> </li>
- _index.md
<li class="flex list-none"> <span class="inline-flex cursor-default items-center py-1"><svg width=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg><span class="ml-1">organize-files.md</span> </span> </li> </ul>
</ul>
- _index.md
<li class="flex list-none">
<span class="inline-flex cursor-default items-center py-1"><svg width=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg><span class="ml-1">post-1.md</span>
</span>
</li>
</ul>
content
├── _index.md // <- /
├── docs
│ ├── _index.md // <- /docs/
│ ├── getting-started.md // <- /docs/getting-started/
│ └── guide
│ ├── _index.md // <- /docs/guide/
│ └── organize-files.md // <- /docs/guide/organize-files/
└── blog
├── _index.md // <- /blog/
└── post-1.md // <- /blog/post-1/
Numbeo Data
Its all about Knowledge of Crowds
First Knowledge Adquisition (with FireCrawl + openAI) 📌
python3 firecrawl_test4.py "https://www.numbeo.com/cost-of-living/in/Warsaw" "output4"
**Comparing 2 cities’ costs with FireCrawl + OpenAI
python3 Z_FireCrawl_Numbeo_Compare_v6.py "https://www.numbeo.com/cost-of-living/in/Warsaw" "https://www.numbeo.com/cost-of-living/in/Barcelona"
Weather Analytics
- Code and documentation for the Pirate Weather API - https://github.com/Pirate-Weather/pirateweather
Pirate Weather 📌
This is a new addition to the ones used at TripPlanner
Weather Patterns with MeteoStat 📌
Weather Forecasts with OpenMeteo 📌
Cost of Living Data
- https://www.numbeo.com/common/api.jsp - Max 200,000 queries per month
Interactivity & Maps with Streamlit
This is a really cool new feature from Streamlit.
The Agents
Its been a while since I got to know about CrewAI
Not its time to do something with it
Adding memory to the AI to know your preferences
FAQ
How to’s about SQLite
SQLite is a very handy and portable DB to place some logs.
Storing in SQLite 📌
Reading SQLite 📌
And now, there is even a fork of it
More about SQLite Fork - libSQL [Optimized for AI] 📌
SQLite is the most deployed database in history, with over 1 trillion active users. It was developed 25 years ago by Richard Hipp for a US Navy damage control system. This lightweight database is contained in a single 600 KB file, requires no server process, and is an essential part of many modern applications.
Although SQLite is in the public domain, its development is managed by just three people, with no outside contributions allowed. Despite these limitations, SQLite has become ubiquitous due to its simplicity and reliability.
In October 2022, a new fork called libSQL was introduced, with a focus on community-controlled development. It retains SQL-like compatibility with SQLite, but introduces new features to address some of SQLite’s limitations.
Key features of libSQL:
- One database per user: This approach could improve performance, reduce latency, and enhance security.
- Server mode: Allows access to the database via HTTP.
- Native replication system: Enables embedded replica features.
- Encryption at rest: Adds an extra layer of security for data storage.
- Web Assembly triggers: Lets you run code when specific events occur in the database.
- Shared schema across multiple databases: Makes it easier to manage databases together.
- Vector queries: Optimized for AI applications, enabling complex data operations.
Benefits and Challenges of libSQL:
- Performance: The one-database-per-user model can significantly boost performance and reduce latency, but it may create challenges with data retrieval and combining data across different locations.
- Security: Enhanced security through encryption and the isolated nature of individual user databases.
- However, retrieving and combining data from different databases may not be practical in all cases, especially when data is spread across geographically distant locations.
In conclusion, libSQL brings significant improvements over SQLite by offering a more flexible, community-driven approach to database management. With its new features and robust capabilities, it has the potential to revolutionize how we build and manage databases, especially for applications requiring high performance, security, and AI integration.
SQLite may be underappreciated, but with libSQL, it becomes even more powerful and adaptable to modern needs.
Reading SQLite DBs 📌
You can explore a SQLite via a script, like we did during the Scrapping Post
There is a cool project for this - https://github.com/sqlitebrowser/sqlitebrowser
sqlitebrowser - DB Browser for SQLite (DB4S) is an open-source tool for creating, designing, and editing SQLite database files.
It simplifies database management for users and developers, eliminating the need for complex SQL commands.
Key Features:
Visual interface resembling a spreadsheet.
Allows creation and modification of database files.
Supports searching, editing, and deleting database records.
Facilitates importing/exporting of data in various formats (CSV, SQL).
Offers SQL query capabilities with result inspection.
Provides graphical plotting of data.
Key Information:
Continuous and nightly builds are available for download.
Compatible with Windows, macOS, Linux, and FreeBSD.
Installation options include package managers like Chocolatey, Homebrew, and Snap.
The project has a rich history of community contributions and updates.
Conclusions:
DB4S is a valuable tool for users needing an intuitive interface for SQLite database management.
Similar Projects:
DBeaver: A universal database tool for developers.
HeidiSQL: A lightweight SQL client for MySQL, SQL Server, and PostgreSQL.
Interesting software for Vacations
- https://organicmaps.app/news/
- https://github.com/joaovitoriasilva/endurain
- https://github.com/johanohly/AirTrail
- https://github.com/seanmorley15/AdventureLog
Spliit 📌
Spliit is a free and open-source alternative to Splitwise, aimed at simplifying expense sharing among friends and family.
It addresses the need for a user-friendly platform to manage shared expenses without the hassle of ads or fees.
Key Features:
Create and share groups for expense tracking.
Add detailed expenses with descriptions.
Display balances within groups.
Create reimbursement expenses.
Progressive Web App (PWA) functionality.
Option to split expenses unevenly.
Ability to upload images and scan receipts for expenses.
Future features may include recurring expenses and import from Splitwise.
Technology Stack:
Next.js for web application framework.
TailwindCSS for styling.
Prisma for database access.
Vercel for hosting.
Contribution:
Open to community contributions.
Options for financial support available.
Local Development:
Clone the repository and set up a local PostgreSQL server.
Follow setup instructions to run the application locally or in a Docker container.
Spliit offers a robust solution for managing shared expenses and simplifies the process for users.
Similar projects include Tricount and Splitwise itself.
Using hoppscotch
HomeAssistant
With HA we also can…
https://pirateweather.net/en/latest/ha/
Scrapping and LLMs
Get Google Flights information with python.