diff --git a/README.md b/README.md index 72f475f00..769963dfd 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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 @@ -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: @@ -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 ). - +Access the interface in your web browser at the provided URL . -``` -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. @@ -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 ??" @@ -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: @@ -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) \ No newline at end of file diff --git a/graphfleet/api/openapi.stainless.yml b/graphfleet/api/openapi.stainless.yml index e69de29bb..dcf9a9f5c 100644 --- a/graphfleet/api/openapi.stainless.yml +++ b/graphfleet/api/openapi.stainless.yml @@ -0,0 +1,61 @@ +# yaml-language-server: $schema=https://app.stainlessapi.com/config.schema.json + +organization: + name: Qredence + docs: https://docs.qredence.ai + contact: zachary@qredence.ai + 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: {} \ No newline at end of file diff --git a/graphfleet/api/openapi.yml b/graphfleet/api/openapi.yml index e69de29bb..066d53e65 100644 --- a/graphfleet/api/openapi.yml +++ b/graphfleet/api/openapi.yml @@ -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' \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index fdcc0ec3a..422349982 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 "] license = "Apache-2.0"