Skip to content

Commit

Permalink
Your descriptive commit message
Browse files Browse the repository at this point in the history
  • Loading branch information
Zochory authored Aug 14, 2024
1 parent dda5f28 commit 0b2b1e9
Show file tree
Hide file tree
Showing 4 changed files with 237 additions and 51 deletions.
70 changes: 20 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ GraphFleet is an advanced implementation of [GraphRAG from Microsoft](https://gi
## GraphFleet

GraphFleet uses knowledge graphs to provide substantial improvements in question-and-answer performance when reasoning about complex information. It addresses limitations of traditional RAG approaches:
<<<<<<< HEAD


## Roadmap

Expand Down Expand Up @@ -38,14 +38,11 @@ GraphFleet uses knowledge graphs to provide substantial improvements in question

### Prerequisites

<<<<<<< HEAD

- Python 3.10
- Poetry
- Make sure to have a virtual environment manager such as `virtualenv` installed
=======
- Python 3.11
- Make sure to have a virtual environment manager such as `virtualenv` installed
>>>>>>> origin/main


### Installation

Expand All @@ -56,35 +53,13 @@ GraphFleet uses knowledge graphs to provide substantial improvements in question
cd GraphFleet
```


``` bash
git clone https://github.com/Qredence/GraphFleet.git
cd GraphFleet
```


2. Simply run these in your terminal:
1. Simply run these in your terminal:

``` bash
poetry shell
poetry install
```


2. Create a virtual environment and activate it:

``` bash
python3.11 -m venv gfleetenv
source gfleetenv/bin/activate
```

3. Install dependencies:

```
pip install -r requirements.txt
```


### Usage

1. Configuration:
Expand Down Expand Up @@ -114,25 +89,16 @@ Jupyter Notebooks: Explore GraphFleet's capabilities with the provided notebooks

app.py (FastAPI Application): Run a Streamlit-powered web interface to interact with GraphFleet using a user-friendly chat-like interface.

### Start the application
### Start the application API only

``` bash
uvicorn graphfleet.api.api:app --host 0.0.0.0 --port 8001
```
streamlit run app.py
```

Access the interface in your web browser at the provided URL (usually <http://localhost:8080>).


Access the interface in your web browser at the provided URL <http://0.0.0.0:8001/docs> .

```
GRAPHRAG_API_KEY
GRAPHRAG_API_BASE (for Azure OpenAI)
GRAPHRAG_API_VERSION (for Azure OpenAI)
Other settings related to your LLM and embedding models.
settings.yaml: Customize GraphFleet's behavior further by modifying the settings.yaml file within the graphfleet directory.
```

2. Data Indexing:
1. Data Indexing:

Jupyter Notebook Guide: Follow the instructions provided in the get-started-graphfleet.ipynb notebook to learn how to index your data with GraphFleet. This notebook provides a hands-on experience for setting up your knowledge base.

Expand All @@ -144,13 +110,19 @@ Local Search Notebook.ipynb: Demonstrates local search techniques.
[Add descriptions of other notebooks and their purpose here]
app.py (FastAPI Application): Run a Streamlit-powered web interface to interact with GraphFleet using a user-friendly chat-like interface:

### Start the application:
### Running the API only

To run the API, save the code in a file named api.py and execute the following command in your terminal:

``` bash
uvicorn api:app --reload --port 8001
```
streamlit run app.py
```
Access the interface in your web browser at the provided URL (usually http://localhost:8080).

### Start the application

``` bash
streamlit run app.py # Access the interface in your web browser at the provided URL (usually http://localhost:8080).
```

``` bash
python -m graphrag.query --root ./graphfleet --method local "What are the key features of GraphRAG ??"
Expand All @@ -162,7 +134,6 @@ For Global query mode :
python -m graphrag.query --root ./graphfleet --method global "What are the top main features of GraphRAG"
```


### Running the API only

To run the API, save the code in a file named api.py and execute the following command in your terminal:
Expand All @@ -181,5 +152,4 @@ uvicorn api:app --reload --port 8001

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=Qredence/GraphFleet&type=Date)](https://star-history.com/#Qredence/GraphFleet&Date)

[![Star History Chart](https://api.star-history.com/svg?repos=Qredence/GraphFleet&type=Date)](https://star-history.com/#Qredence/GraphFleet&Date)
61 changes: 61 additions & 0 deletions graphfleet/api/openapi.stainless.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# yaml-language-server: $schema=https://app.stainlessapi.com/config.schema.json

organization:
name: Qredence
docs: https://docs.qredence.ai
contact: [email protected]
github_org: Qredence
resources:
root:
methods:
retrieve: get /
$client:
methods:
process_local_query: post /process_local_query/
process_global_query: post /process_global_query/
add_message: post /add_message/
chat_history:
methods:
list: get /get_chat_history/
delete: delete /clear_chat_history/
targets:
node:
package_name: graphfleet
production_repo: null
publish:
npm: false
python:
package_name: graphfleet
production_repo: null
publish:
pypi: false
settings:
license: Apache-2.0
client_settings:
opts: {}
omit_platform_headers: false
default_headers: {}
default_timeout: PT60S
default_retries:
max_retries: 2
initial_delay_seconds: 0.5
max_delay_seconds: 8
environments:
production: https://localhost:8080/test-api
query_settings:
nested_format: brackets
array_format: comma
readme:
example_requests:
default:
type: request
endpoint: post /add_message/
params: &ref_0 {}
headline:
type: request
endpoint: post /add_message/
params: *ref_0
pagination:
type: request
endpoint: get /get_chat_history/
params: {}
155 changes: 155 additions & 0 deletions graphfleet/api/openapi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
openapi: '3.1.0'
info:
title: 'GraphFleet'
version: '0.4.0'
paths:
'/':
get:
summary: 'Read Root'
operationId: 'read_root__get'
responses:
'200':
description: 'Successful Response'
content:
application/json:
schema: {}
'/process_local_query/':
post:
summary: 'Process Local Query Endpoint'
operationId: 'process_local_query_endpoint_process_local_query__post'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRequest'
required: true
responses:
'200':
description: 'Successful Response'
content:
application/json:
schema: {}
'422':
description: 'Validation Error'
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'/process_global_query/':
post:
summary: 'Process Global Query Endpoint'
operationId: 'process_global_query_endpoint_process_global_query__post'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRequest'
required: true
responses:
'200':
description: 'Successful Response'
content:
application/json:
schema: {}
'422':
description: 'Validation Error'
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'/add_message/':
post:
summary: 'Add Message'
operationId: 'add_message_add_message__post'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ChatMessage'
required: true
responses:
'200':
description: 'Successful Response'
content:
application/json:
schema: {}
'422':
description: 'Validation Error'
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'/get_chat_history/':
get:
summary: 'Get Chat History'
operationId: 'get_chat_history_get_chat_history__get'
responses:
'200':
description: 'Successful Response'
content:
application/json:
schema: {}
'/clear_chat_history/':
delete:
summary: 'Clear Chat History'
operationId: 'clear_chat_history_clear_chat_history__delete'
responses:
'200':
description: 'Successful Response'
content:
application/json:
schema: {}
components:
schemas:
ChatMessage:
type: 'object'
title: 'ChatMessage'
required:
- role
- content
properties:
role:
type: 'string'
title: 'Role'
content:
type: 'string'
title: 'Content'
HTTPValidationError:
type: 'object'
title: 'HTTPValidationError'
properties:
detail:
type: 'array'
title: 'Detail'
items:
$ref: '#/components/schemas/ValidationError'
QueryRequest:
type: 'object'
title: 'QueryRequest'
required:
- query
properties:
query:
type: 'string'
title: 'Query'
ValidationError:
type: 'object'
title: 'ValidationError'
required:
- loc
- msg
- type
properties:
loc:
type: 'array'
title: 'Location'
items:
anyOf:
- type: 'string'
- type: 'integer'
msg:
type: 'string'
title: 'Message'
type:
type: 'string'
title: 'Error Type'
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "graphfleet"
version = "0.4.0"
version = "0.4.1"
description = "Build upon GraphRAG, provide a quick solution setup and is part of the overall Qredence System like AgenticFleet and FleetUI"
authors = ["Zachary <[email protected]>"]
license = "Apache-2.0"
Expand Down

0 comments on commit 0b2b1e9

Please sign in to comment.