AI Fiction in the Wild

An interactive visualizer of ~195,000 fiction-related ChatGPT conversations.

This website hosts ChatGPT-user conversations that were classified as containing some form of fiction. The data is drawn from WildChat, which includes millions of chat logs that were collected voluntarily, and with explicit user consent, through an interface hosted on the website HuggingFace.

Methodology

Classifying fiction

To classify the fiction in WildChat, we used an LLM. We showed the model — specifically, GPT-o4-mini — the first three exchanges in each human-ChatGPT conversation and asked whether the user’s prompts contain a request for fiction (as well as fanfiction and/or explicit material). We provide a detailed explanation, specifying that fiction can be any “content that is imaginative, speculative, or not grounded in real-world facts,” including “original stories, speculative scenarios, or alternate histories.” We also provided one example input and a desired output—an approach known as one-shot prompting or in-context learning—using a real WildChat user prompt and the “correct’’ answer according to our schema. All three authors indepenently labeled 300 randomly sampled conversations, and we compared our consensus classifications to the model’s, finding high agreement. You can learn more in our paper.

Technical details

For each conversation we send the model the first three exchanges and the prompt below, then parse the results.

The classification prompt, shown exactly as sent to the model:

You are tasked with labeling a conversation between a user and chatbot based on three axes: fiction, fanfiction, and sexually explicit content.

### Definitions and Clarifications

**Fiction**: The user asks the chatbot to produce content that is imaginative, speculative, or not grounded in real-world facts. This includes creating original stories, speculative scenarios, or alternate histories. Purely descriptive or encyclopedic prompts about existing fictional properties *do not count as fiction*.

**Fanfiction**: A type of fiction that uses characters, settings, or plot elements from *existing intellectual properties* (IPs), including but not limited to TV shows, movies, video games, anime, or books.

Examples of fanfiction:
- "Sonic and Pikachu explore Hogwarts."
- "What if Darth Vader fought Goku?"

**Sexually explicit**: The user attempting to prompt the chatbot into erotic content. This includes:
- Direct sexual acts or dialogue
- Heavy innuendo or clearly suggestive situations
- Conversations where the chatbot does not carry out the erotic prompting, but the intent in the prompt is still there.

### Label each conversation accurately
If unsure, err on the side of inclusiveness.

---

**Example Input**

Conversation:

USER: What if Arya was a Lady?
CHATBOT: If Arya was a Lady, it would change her story quite drastically. As a Lady, she would be expected to follow traditional gender roles and marry into a powerful family to secure political alliances. She would also be expected to focus on learning practical skills such as sewing, dancing, and music, rather than swordplay and archery. However, given Arya's rebellious nature and her desire to break free from societal norms, it is possible that she would resist these expectations and continue to pursue her interest in combat and adventure. She might face more pushback and resistance from her family and society, but she could still find a way to achieve her goals and remain true to herself. Overall, while being a Lady would certainly change Arya's story, it might not drastically alter her character or resolve.

**Example Output**

{{
  "is fiction": true,
  "is fanfiction": true,
  "is sexually explicit": false
}}

---

**Instructions**

Now, here is the real input:
Estimating Users

Because the WildChat data is anonymized, it is difficult to know exactly how many unique users are represented in the dataset. While the original research team recorded hashed IP addresses for every conversation, if someone used WildChat at home, a coffee shop, and the library, that would show up as multiple IP addresses, overcounting users in that case. To address this issue, we bundle together IP addresses that posted at least one near-duplicate fiction prompt (longer than 30 characters) from the same geographic region. We embed the first prompt of all convesations, and we cluster with an algorithm called DBSCAN. If two IPs from the same state ever submitted prompts in the same DBSCAN cluster, we treat the as the same estimated user. We acknowledge that this method is not perfect and may overly merge on templatized prompts.

Technical details

We run a global DBSCAN over every fiction conversation's opening prompt (all-MiniLM-L6-v2 embeddings, cosine distance, ε=0.1, min_samples=2). Two IP addresses from the same geographic state are then merged into the same estimated user if at least one of their prompts (longer than 30 characters) falls in the same DBSCAN cluster — meaning the prompts are near-duplicates. Groups are merged transitively.

Story Permutations

We determine clusters of story permutations by using the same clustering algorithm, DBSCAN. Each first prompt is encoded with the all-MiniLM-L6-v2 sentence transformer, and we cluster the resulting vectors with DBSCAN. Then we map clusters to estimated users.

Technical details

DBSCAN parameters: eps = 0.1 in cosine distance space (so two prompts must be within ~0.9 cosine similarity to chain together), min_samples = 2. Embeddings are L2-normalized before clustering. We run DBSCAN once globally over every fiction conversation's opening prompt, then aggregate per estimated user.

Privacy & user demographics

The users featured in the WildChat data (Zhao, et al.) consented to have their data used for research purposes. You can read their paper for more details. However, ethical and privacy considerations remain. We might wonder how many of these users actually read the agreement or fully understood the implications of their decision.

Additionally, though the conversations are anonymized — including only a hashed IP address and, based on this IP, an estimated geographic state or region — and though users agreed to share their chats publicly, some users still shared personal and sensitive information. The WildChat authors implemented automated procedures to anonymize personally identifiable information (e.g., personal names, email addresses), but subsequent studies showed that sensitive data remained (Antoniak et al.). These authors notified the WildChat creators, who took steps to scrub this additional information.

In choosing to study and release this data, we acknowledge a trade-off of concerns. While we believe the potential risks and harms for the WildChat users have been sufficiently mitigated, some may still exist. We believe this analysis is justified by users’ explicit consent and by the urgency of helping researchers and the public understand what people are really doing with these tools.

Because the WildChat users are anonymous, we also do not have a clear sense of their demographic breakdown or representativeness. The chatbots were hosted on Hugging Face — a community for sharing machine learning models and datasets — so we might guess, as the original creators do, that these individuals skew more technically literate and “online” than your average user. These instances of ChatGPT were also free, did not require a login or account, and did not have the same rate limits as a regular account. This might mean that users are from lower-income backgrounds, from countries where ChatGPT is banned, or that they were more invested in pushing the boundaries of the model with explicit or prohibited content. WildChat is not a representative sample of all ChatGPT users, with recent research showing a particular dominance of power users compared to a random sample of Microsoft Bing Copilot user chat logs (Hicke and Tomlinson).

Who made this

Melanie Walsh, Neel Gupta, Advait Deshmukh, Maria Antoniak

Paper & data

Pre-print coming soon

To support further research, we release the subset of fiction-related WildChat conversations that we identify on Hugging Face:
huggingface.co/datasets/neelgupta2112/Wildchat-1M-English-Fiction-Labels

Talk

Presented at the UC Berkeley School of Information Cultural Analytics Series, co-sponsored by the Berkeley Institute for Data Science. October 24, 2025.

What this site is built with

Flask (Python web framework), Elasticsearch (full-text search), deck.gl (WebGL maps), Svelte (front-page scrolly story), Sentence Transformers (embeddings), HDBSCAN (topic clustering), UMAP (dimensionality reduction), GPT-4o (topic-label generation), and Docker.

Related projects & data

WildChat

The underlying corpus — 1M ChatGPT conversations collected with user consent by the Allen Institute for AI.

wildchat.allen.ai
WildChat paper

Zhao et al. "WildChat: 1M ChatGPT Interaction Logs in the Wild" (ICLR 2024).

arxiv.org
WildVisualizer

A more general search tool over the full WildChat dataset (not fiction-filtered).

wildvisualizer.com