{"id":19775746,"url":"https://github.com/carverauto/threadr","last_synced_at":"2025-04-30T19:30:42.804Z","repository":{"id":218310033,"uuid":"746045573","full_name":"carverauto/threadr","owner":"carverauto","description":"🌎 OSS Real-time AI Data Analysis with GraphDB integration. 🔍","archived":false,"fork":false,"pushed_at":"2025-02-08T00:35:23.000Z","size":32749,"stargazers_count":19,"open_issues_count":38,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-06T04:09:14.749Z","etag":null,"topics":["event-driven-architecture","generative-ai","graphdb","intelligence-gathering","message-broker","ml","property-g","security","social-network-analysis"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carverauto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-20T22:36:51.000Z","updated_at":"2025-02-16T12:58:46.000Z","dependencies_parsed_at":"2024-01-21T05:20:06.954Z","dependency_job_id":"ce8dd6d6-4edb-4806-863a-6353ddcb8f99","html_url":"https://github.com/carverauto/threadr","commit_stats":null,"previous_names":["carverauto/threadnexus"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carverauto%2Fthreadr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carverauto%2Fthreadr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carverauto%2Fthreadr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carverauto%2Fthreadr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carverauto","download_url":"https://codeload.github.com/carverauto/threadr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251769207,"owners_count":21640862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["event-driven-architecture","generative-ai","graphdb","intelligence-gathering","message-broker","ml","property-g","security","social-network-analysis"],"created_at":"2024-11-12T05:17:25.606Z","updated_at":"2025-04-30T19:30:37.785Z","avatar_url":"https://github.com/carverauto.png","language":"Jupyter Notebook","readme":"![threadNexus](https://raw.githubusercontent.com/carverauto/threadnexus/main/assets/thread-banner.png)\n\n# Description\n\nCreate an opensource social graph tool identifying relationships between actors,\nparticularly threat actors, creating graphs and clusters. Identify the strength \nof relationships Actor-to-Actor or Actor-to-Cluster.\n\n## Project Goals\n\n* Identify Actors by observing social media, chat rooms, etc.\n* Find and Store relationships between Actors\n* Assign weights to relationships\n* Identify clusters of Actors\n* Assign weights to clusters\n* Adopt IRC, Slack, Discord, etc.\n* Automatic Dossier Creation\n* Query LLM/RAG\n\n## Community\n\nJoin us on our https://discord.gg/YnzMAJvb\n\n## Embeddings\n\nChat messages will be run through an embedder or sentence transformer to create vectorizations\nand will be saved in a vector index. \n\n## Graph-RAG\n\nLLMs grounded by knowledge graphs (graph-rag) will be used to answer questions such as\n\"Does Alice know Bob?\"\n\nand \"What does Alice know about Bob?\"\n\n## Inferring Relationships\n\n### Inferring Relationship Strengths\n\nLike the jibble project, we will use IRC bots to monitor chat rooms and infer relationships between actors. \nWe will use the following methods to infer relationships:\n\n* Direct Addressing (e.g. \"Hey @carverauto, what do you think?\")\n* Temporal Proximity (e.g. \"I agree with @carverauto's point\")\n* Temporal Density - How often do two actors interact?\n\n### Semantic Inference using an LLM\n\nLLMs can significantly enhance the inference process by understanding the context, sentiment, and the subtleties of human conversation beyond the capabilities of traditional rule-based systems. \n\nScheduled Summarization: Periodically, the system can invoke an LLM to summarize recent conversations. This not only helps in understanding the general discourse but can also highlight recurring themes or subjects around which relationships may form.\n\nTrigger-based Collection: Implement triggers based on conversational cues, such as pauses in dialogue or shifts in topics, to capture and analyze snapshots of conversations. This method ensures that the analysis is contextually relevant and timely.\n\nInterval-based Analysis: Similar to windowing, this involves examining conversations within set intervals to infer relationships and summarize content. This approach can be dynamically adjusted based on the volume of conversation or specific events within the chat room.\n\n#### Leader Selection\n\nAnalyze conversation to find conversation leaders or the perceived leader, for many different contexts (primary chat, or within a cluster)\n\n### Challenges\n\n* Nick Changes - How do we track a user who changes their nick? BBB style database?\n* Actor Disassociation \n - How do we handle actors who are not in the same room?\n - How do we handle actors who are in the same room but never interact?\n - How do we handle actors who are in the same room but never interact in a way that we can infer a relationship?\n* Private Messages - Unable to infer relationships from private messages w/o access to the messages, could be a future feature.\n\n## Visualizing Relationships\n\n* Spring Embedder - A force directed graph layout algorithm\n* Modified Spring Embedder Force Model - A force directed graph layout algorithm with a modified spring embedder\n\n## Temporal Decay\n\nIf we are able to infer the strength of relationships, we can use a temporal decay model to reduce the strength of relationships over time.\n\n## Spam Filtering\n\nTBD\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarverauto%2Fthreadr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarverauto%2Fthreadr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarverauto%2Fthreadr/lists"}