Skip to content

agent-q1/CS711-AI-Debater-Chatbot

Repository files navigation

AI Lawyer

Debater chat app with websockets using Node.js, Express and Socket.io with Vanilla JS on the frontend with a custom UI. Used framework from https://repl.it/badge/github/bradtraversy/chatcord and https://github.com/agent-q1/AI-Debater

Usage

npm install
npm run dev

Go to localhost:3000

Have a fun debate about flat earths

Other Details

Table of contents

General info

This is a project for the course CS711 that aims to build an AI lawyer using concepts of Game Theory and Mechanism Design. We first use NLP (on data from previous law cases) to find the relations between arguments i.e. how strongly a particular argument attacks another argument and construct an argumentation framework with it. When the opponent gives a particular argument, we find the most optimal argument that attacks that particular node. Our criteria for choosing the most optimal node is based on how strong the argument is, how likely the oponent will be able to provide a counter argument to it and how strong that argument could possibly be. We try to look at the possible states that the game could go to over the next d moves and try to predict the node with the maximum utility. More details can be found in our paper ArgumentationTheory.pdf

Technologies

Project is created with:

  • Neo4j: 4.1
  • Python: 3.6
  • Neo4j Python driver: 4.2

Setup

To run this project, first move the csv files into the import folder that you neo4j database looks for. Start up the database. Change the password in test.py to the password of the database. It is recommended to use virtual environments.

$ pip install neo4j==4.2.0
$ python3 helpers.py

You should now be able to view the various nodes and relationships in your neo4j browser when you run the command

MATCH (a:Argument)
RETURN a

alt text

This is a small test example (which can be easily swapped out for real data) to allow us to see how the working of the algorithm.

Running find_next_argument() on the current graph with a depth = 2 on node 1 yields Node 3 as the next argument.

alt text

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published