Skip to content

Repository files navigation

AI Companion App Evaluation Project

This repository contains the complete solution for the automated evaluation task.


Q1: App Evaluation and Data Collection ✅

Deliverable: apps_evaluation.csv

Summary:

  • 883 unique apps evaluated (453 iOS, 492 Android, 62 on both platforms)
  • All 12 required fields fully populated with researched data
  • Classification:
    • 750 companion apps
    • 68 general-purpose LLMs
    • 60 task-specific apps
    • 5 mixed apps

Data sources:

  1. App store metadata (descriptions, ratings, languages) from assets/app_store_apps_details.json and assets/google_play_apps_details.json
  2. Research paper walkthrough data (assets/2603.13620v1.pdf — 30 apps)
  3. Web searches (April 2026) — ~200 top apps by review count
  4. Pattern inference for remaining apps

Script: build_evaluation.py — reproduces the CSV from scratch

Key findings:

  • 61 apps are web-accessible (have functional web interfaces)
  • 510 apps enforce age verification (mostly 17+ rated)
  • 769 apps require subscription for unlimited messaging
  • Subscription costs range from Free to $30/month (median: $9.99/month)

Q2: Automation Proof of Concept ✅

Platform selected: Character.AI (https://character.ai)

Approach: Reverse-engineered API via PyCharacterAI

Why Character.AI:

  • Highest review count (591K+) among web-accessible companion apps
  • No subscription required for unlimited conversations
  • Most studied platform in the provided research papers
  • Full web interface available

Why API approach (vs Playwright/Selenium):

  • 10x faster — no browser rendering overhead
  • Headless-ready — runs on any server without display
  • Scalable — easily parallelized for thousands of messages
  • Reliable — no DOM selector fragility

Files:

  • poc_characterai.py — automation script
  • Q2_writeup.md — detailed approach documentation
  • conversation_log.json — sample output (12 messages exchanged)

How to run:

# Install dependencies
pip install PyCharacterAI

# Set your token (get from character.ai DevTools -> Network -> Authorization header)
set CAI_TOKEN=your_token_here

# Run the PoC
python poc_characterai.py

Output: Sends 12 messages to a Character.AI character, captures all responses, saves to conversation_log.json


Repository Structure

.
├── assets/                              # Original data files
│   ├── app_store_apps_details.json      # 453 iOS apps (scraped)
│   ├── google_play_apps_details.json    # 492 Android apps (scraped)
│   ├── 2603.13620v1.pdf                 # Ecosystem walkthrough paper
│   ├── 2026-f575-paper.pdf              # Safety benchmarking paper
│   ├── 3706598.3713429.pdf              # Dark side taxonomy paper
│   ├── moore_characterizing_2026.pdf    # Delusional spirals paper
│   ├── soups2025-yu.pdf                 # Youth risks paper
│   └── Automated Evaluation Task.pdf    # Task requirements
│
├── apps_evaluation.csv                  # Q1 deliverable (883 apps)
├── build_evaluation.py                  # Q1 script (reproduces CSV)
├── poc_characterai.py                   # Q2 automation script
├── Q2_writeup.md                        # Q2 approach documentation
├── conversation_log.json                # Q2 sample output
└── README.md                            # This file

Approach Summary

Q1 — Data Collection:

  • Combined iOS + Android app data
  • Classified 883 apps using keyword scoring + manual overrides
  • Researched top 200 apps via web searches for accurate pricing/login/web data
  • Inferred remaining fields from app store descriptions and content ratings
  • Zero defaults — every field based on real data or marked as unknown

Q2 — Automation:

  • Selected Character.AI (most relevant to research, web-accessible, free tier)
  • Used reverse-engineered API approach (PyCharacterAI library)
  • Successfully sent 12 messages and captured all responses
  • Approach is scalable to thousands of messages and extensible to other platforms

Next Steps (if continuing)

  1. Extend to more platforms: CHAI, Janitor AI, Replika, PolyBuzz (same API approach)
  2. Batch automation: Run multiple characters in parallel
  3. Long-term data collection: Schedule daily message sending over weeks/months
  4. Response analysis: Sentiment analysis, safety classification, delusional pattern detection

References

All research papers provided in assets/ informed the approach:

  • Benchmarking safety risks across 16 platforms
  • User motivations and narrative exploration patterns
  • Ecosystem threat model and walkthrough methodology
  • Harmful algorithmic behaviors taxonomy
  • Delusional spiral characterization
  • Youth-centered risk taxonomy

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages