install_lightrag_dev.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/bash
  2. NAMESPACE=rag
  3. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
  4. check_dependencies(){
  5. echo "Checking dependencies..."
  6. command -v kubectl >/dev/null 2>&1 || { echo "Error: kubectl command not found"; exit 1; }
  7. command -v helm >/dev/null 2>&1 || { echo "Error: helm command not found"; exit 1; }
  8. # Check if Kubernetes is available
  9. echo "Checking if Kubernetes is available..."
  10. kubectl cluster-info &>/dev/null
  11. if [ $? -ne 0 ]; then
  12. echo "Error: Kubernetes cluster is not accessible. Please ensure you have proper access to a Kubernetes cluster."
  13. exit 1
  14. fi
  15. echo "Kubernetes cluster is accessible."
  16. }
  17. check_dependencies
  18. if [ -z "$OPENAI_API_KEY" ]; then
  19. echo "OPENAI_API_KEY environment variable is not set"
  20. read -s -p "Enter your OpenAI API key: " OPENAI_API_KEY
  21. if [ -z "$OPENAI_API_KEY" ]; then
  22. echo "Error: OPENAI_API_KEY must be provided"
  23. exit 1
  24. fi
  25. export OPENAI_API_KEY=$OPENAI_API_KEY
  26. fi
  27. if [ -z "$OPENAI_API_BASE" ]; then
  28. echo "OPENAI_API_BASE environment variable is not set, will use default value"
  29. read -p "Enter OpenAI API base URL (press Enter to skip if not needed): " OPENAI_API_BASE
  30. export OPENAI_API_BASE=$OPENAI_API_BASE
  31. fi
  32. required_env_vars=("OPENAI_API_BASE" "OPENAI_API_KEY")
  33. for var in "${required_env_vars[@]}"; do
  34. if [ -z "${!var}" ]; then
  35. echo "Error: $var environment variable is not set"
  36. exit 1
  37. fi
  38. done
  39. if ! kubectl get namespace rag &> /dev/null; then
  40. echo "creating namespace 'rag'..."
  41. kubectl create namespace rag
  42. fi
  43. helm upgrade --install lightrag-dev $SCRIPT_DIR/lightrag \
  44. --namespace rag \
  45. --set-string env.LIGHTRAG_KV_STORAGE=JsonKVStorage \
  46. --set-string env.LIGHTRAG_VECTOR_STORAGE=NanoVectorDBStorage \
  47. --set-string env.LIGHTRAG_GRAPH_STORAGE=NetworkXStorage \
  48. --set-string env.LIGHTRAG_DOC_STATUS_STORAGE=JsonDocStatusStorage \
  49. --set-string env.LLM_BINDING=openai \
  50. --set-string env.LLM_MODEL=gpt-4o-mini \
  51. --set-string env.LLM_BINDING_HOST=$OPENAI_API_BASE \
  52. --set-string env.LLM_BINDING_API_KEY=$OPENAI_API_KEY \
  53. --set-string env.EMBEDDING_BINDING=openai \
  54. --set-string env.EMBEDDING_MODEL=text-embedding-ada-002 \
  55. --set-string env.EMBEDDING_DIM=1536 \
  56. --set-string env.EMBEDDING_BINDING_API_KEY=$OPENAI_API_KEY
  57. # Wait for LightRAG pod to be ready
  58. echo ""
  59. echo "Waiting for lightrag-dev pod to be ready..."
  60. kubectl wait --for=condition=ready pod -l app.kubernetes.io/instance=lightrag-dev --timeout=300s -n rag
  61. echo "lightrag-dev pod is ready"
  62. echo ""
  63. echo "Running Port-Forward:"
  64. echo " kubectl --namespace rag port-forward svc/lightrag-dev 9621:9621"
  65. echo "==========================================="
  66. echo ""
  67. echo "✅ You can visit LightRAG at: http://localhost:9621"
  68. echo ""
  69. kubectl --namespace rag port-forward svc/lightrag-dev 9621:9621