Privacy policy
This site is a personal portfolio. It has no accounts, logins, ads or data sales. This page explains the little that is processed when you browse, talk to the assistant or send a contact message.
Who is responsible
The data controller is Paulo Vitor Souza, an individual based in Brazil. For any privacy matter, write to [email protected].
Browsing the site
Pages are static files served by Cloudflare Pages. To deliver pages and protect the site from abuse, Cloudflare processes technical data about each request, such as IP address, browser and requested page, under its own privacy policy.
The site code uses no first-party cookies, tracking pixels or third-party analytics tools. Cloudflare Web Analytics is turned off as well.
AI assistant (/chat)
When you send a message, your browser sends the assistant server (ai.pvsouza.com, a Cloudflare Worker) the latest messages of the conversation (up to 12), attached images and the selected model. The Worker:
- searches this site for passages related to the question, using Cloudflare's Workers AI to compare texts;
- forwards the conversation to the selected model's provider to generate the answer and the conversation title;
- caches the generated answer for up to 1 hour, keyed by a hash of the history, so identical questions get the same answer without a new model call. The question text is not stored in plain text;
- logs only technical events and error messages, without conversation text.
There is no conversation database on the server. The history in the sidebar lives only in your browser (see "Storage in your browser").
Do not send the assistant sensitive data (health, IDs, passwords, financial data) or other people's data. Answers are AI-generated and may contain mistakes.
Providers that receive data
Each provider processes data under its own terms, only to deliver its service:
- Cloudflare (Pages, Workers, Workers AI, AI Gateway, KV, Turnstile and Email Routing): hosting, running the assistant, caching, bot protection and forwarding contact e-mail.
- OpenAI, OpenRouter (which routes to the model's provider, such as DeepSeek), Cerebras and Google (Gemini): generating answers, according to the model picked in the selector.
Model calls go through Cloudflare's AI Gateway, which logs only call data (model, tokens, cost and errors) to monitor cost and failures, without message text. The API keys used with model providers are set up with no data retention: content is processed to generate the answer and is not kept.
Contact form
The chat's contact form collects name, e-mail, subject (optional) and message, only to reply to you. Before sending, Cloudflare Turnstile checks you are not a bot. Your IP address is used in memory to limit submissions per minute and is not stored.
The message arrives by e-mail, forwarded by Cloudflare, in Paulo's personal inbox, and stays there while useful for the conversation. You can ask for its deletion at any time.
Storage in your browser
The chat uses the browser's local storage (localStorage and sessionStorage), not cookies, to keep:
- your conversation history (up to 50 conversations of up to 100 messages each), including attached images;
- your preferred model, settings, sidebar state and answer ratings ("Good answer" / "Bad answer"), which are not sent anywhere;
- the question asked on the home page, only until the chat opens.
This data does not leave your device, except the messages of the current conversation when you send a question. To delete it, remove the conversations in the chat or clear the site data in your browser.
When you share a conversation, it travels compressed in the link fragment (the part after #), which browsers do not send to the server. Anyone with the link can read the conversation.
Cookies
The site sets no first-party cookies and needs no consent banner. Cloudflare may set technical security cookies, and Turnstile may use technical browser data on the contact form only.
Legal basis
Under Brazil's General Data Protection Law (LGPD, Law 13,709/2018), processing relies on the legitimate interest in running and protecting the site and the assistant (art. 7, IX) and, for contact, on handling your request (art. 7, V).
International transfer
Cloudflare, OpenAI, OpenRouter, Cerebras, Google and the model providers process data on servers outside Brazil, mainly in the United States, under each one's contractual safeguards (LGPD, art. 33).
Your rights
You may request at any time:
- confirmation that processing exists and access to the data;
- correction of incomplete or outdated data;
- anonymization, blocking or deletion of unnecessary data;
- portability and information about who the data was shared with;
- objection to processing and withdrawal of consent.
Write to [email protected]. You will get an answer within 15 days. Since neither the server nor the providers keep conversations, the only chat data outside your browser is the cached answer, which expires within 1 hour. You may also file a complaint with Brazil's National Data Protection Authority (ANPD).
Changes to this policy
When processing changes (new provider, new feature, new retention), this page is updated and the date at the top changes.