/jarvis

Customized bot with langchain and gpt4

Primary LanguagePythonApache License 2.0Apache-2.0

Jarvis

Domain-Specific ChatGPT Platform.

Overview

Jarvis is a cutting-edge platform that integrates ChatGPT with domain-specific knowledge. By vectorizing vast amounts of domain knowledge, Jarvis allows users to utilize GPT in context with domain-specific information. Furthermore, with the power of fine-tuning, Jarvis offers a more customized GPT experience tailored to the specific needs of its users.

Stack

  • Domain Knowledge Utilization: Langchain / Openai
  • Vectorestore / Database: Redis
  • WSS server / API server: Fastapi / Nginx
  • For Report: Report Jupyter Notebook Repo

Features

  1. Domain Knowledge Integration: Jarvis transforms extensive domain knowledge into vectorstore, enabling GPT to operate within a specific domain context.
  2. Customizable GPT: Through fine-tuning, users can have a GPT experience that is more aligned with their specific requirements.
  3. Chatbot Service: Designed with use-cases such as onboarding part-time staff for solo entrepreneurs and facilitating conversations with book authors.
  4. Report Generation: Using the user's chat conversation history as input, Jarvis allows users to select a topic of interest. It then provides an in-depth report, analyzing the topic across 3-4 subtopics.

Services

  1. Chatbot: Ideal for scenarios like assisting self-employed individuals in onboarding part-time workers or enabling conversations with book authors.

  2. Report Writing: Users can input their existing chat conversation history, and upon selecting a desired topic, Jarvis will generate a comprehensive report, breaking down the topic into 3-4 detailed subtopics.

1. Swagger

Swagger 1 Swagger 2

2. Vectorstore redis

Redis Commander 1 Redis Commander 2

3. Use case

Use Case 1 Use Case 2 Kakao

Init && Deploy

Initialization

$ poetry init
$ poetry env use python3.8
$ poetry add langchain faiss-cpu

Vscode

$ poetry config virtualenvs.in-project true
$ poetry config virtualenvs.path "./.venv"

πŸš€ Local Deploy

$ make up

πŸš€ Azure VM Deploy

$ make prod-down && make deploy

# ssh
$ make ssh

πŸš€ Google Cloud Deploy

  1. Preparation:

  2. VM Deployment:

    • Execute the script to deploy the VM:
      $ ./gcp_vm.sh tidy-amplifier-387210 asia-northeast3-a e2-standard-4 jarvis-ins
  3. DNS & IP Configuration:

  4. Nameserver & IP Settings:

  5. VM Initialization: $ ./init_vm.sh

  6. SSL Configuration:

    • Modify ./data/nginx/app.conf by commenting out the HTTPS section. This is essential for generating the .pem file using the lets encrypt script.
    • ⚠️ Note: If you skip this step, nginx might not find the SSL and won't run, leading to a connection refused error.
  7. SSL Certificate Initialization: $ ./init-letsencrypt.sh

  8. Revert SSL Configuration:

    • Restore the original settings of ./data/nginx/app.conf.
  9. Environment Setup & Deployment: $ vim .env && make deploy