Skip to main content

A flow language for botrun

Project description

botrun_flow_lang v1.0

開發環境安裝

  • 使用 Python 3.11.9
  • 安裝 uv 來管理 python 套件
    • 安裝 uv 可以參考: 官方文件
    • 第一次使用在 /project_folder/ 下執行
    uv sync
    
    • 之後如果需要新增/刪除套件,需要執行 uv add xxx , uv remove xxx

要進行本地端 fastapi 的開發

uvicorn botrun_flow_lang.main:app --reload --host 0.0.0.0 --port 8080
  • 可以執行的 curl,可以參考 botrun_flow_lang/tests/api_functional_tests.py

開發規範

  • 修改 CHANGELOG.md
  • release 修改 pyproject.toml

(備份用)如果要進行 agent 的開發

  • 安裝 langgraph cli
  • uncomment botrun_flow_lang/langgraph_agents/agents/langgraph_react_agent.py 的最後面幾行
  • 在 project 目錄下執行 langgraph dev

以下是部署參考用,先保留

部署時會輸出可用的 requirements.txt

uv export --format requirements-txt --output-file requirements.txt --no-hashes

建立 firestore 的 index (以下以 dev 為例),實際部署的程式寫在 botrun_chat_deploy

gcloud firestore indexes composite create \
  --collection-group=botrun-hatch-dev-hatch \
  --field-config=field-path=user_id,order=ascending \
  --field-config=field-path=name,order=ascending \
  --field-config=field-path=__name__,order=ascending \
  --project=scoop-386004

# 為AsyncFirestoreCheckpointer建立索引
gcloud firestore indexes composite create \
  --collection-group=botrun-flow-lang-dev-checkpointer \
  --field-config=field-path=checkpoint_ns,order=ascending \
  --field-config=field-path=thread_id,order=ascending \
  --field-config=field-path=timestamp,order=descending \
  --field-config=field-path=__name__,order=descending \
  --project=scoop-386004

打包 dev

gcloud builds submit --config cloudbuild_fastapi_dev.yaml --project=scoop-386004

deploy cloud run, dev 的版本

gcloud run deploy botrun-flow-lang-fastapi-dev \
  --image asia-east1-docker.pkg.dev/scoop-386004/botrun-flow-lang/botrun-flow-lang-fastapi-dev \
  --port 8080 \
  --platform managed \
  --allow-unauthenticated \
  --project=scoop-386004 \
  --region=asia-east1 \
  --cpu 2 \
  --memory 8Gi \
  --min-instances 0 \
  --max-instances 5 \
  --timeout 3600s \
  --concurrency 300 \
  --cpu-boost \

建立 staging 的 index

gcloud firestore indexes composite create \
  --collection-group=botrun-hatch-hatch \
  --field-config=field-path=user_id,order=ascending \
  --field-config=field-path=name,order=ascending \
  --field-config=field-path=__name__,order=ascending \
  --project=scoop-386004

打包 Cloud Run, staging 的版本

gcloud builds submit --config cloudbuild_fastapi.yaml --project=scoop-386004

佈署 cloud run, staging 的版本

gcloud run deploy botrun-flow-lang-fastapi \
  --image asia-east1-docker.pkg.dev/scoop-386004/botrun-flow-lang/botrun-flow-lang-fastapi \
  --port 8080 \
  --platform managed \
  --allow-unauthenticated \
  --project=scoop-386004 \
  --region=asia-east1 \
  --cpu 2 \
  --memory 8Gi \
  --min-instances 0 \
  --max-instances 5 \
  --timeout 3600s \
  --concurrency 300 \
  --cpu-boost \

為了要減少冷啟動的時間,每十分鐘呼叫一次 heartbeat (為了省錢已移除,目前留著備份)

gcloud scheduler jobs create http botrun-flow-lang-heartbeat-job-$ENV \
  --schedule "*/10 * * * *" \
  --time-zone "Asia/Taipei" \
  --uri "https://botrun-flow-lang-fastapi-$ENV-36186877499.asia-east1.run.app/heartbeat" \
  --http-method GET \
  --location "asia-east1" \
  --project "scoop-386004"

測試 scheduler

gcloud scheduler jobs run botrun-flow-lang-heartbeat-job-$ENV --location "asia-east1" --project "scoop-386004"

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

botrun_flow_lang-6.6.254.tar.gz (200.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

botrun_flow_lang-6.6.254-py3-none-any.whl (222.6 kB view details)

Uploaded Python 3

File details

Details for the file botrun_flow_lang-6.6.254.tar.gz.

File metadata

  • Download URL: botrun_flow_lang-6.6.254.tar.gz
  • Upload date:
  • Size: 200.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for botrun_flow_lang-6.6.254.tar.gz
Algorithm Hash digest
SHA256 4cf1d88dbaeb6f8fb31a3e752d6fb349887356c8c1225be8c828b499505c237c
MD5 53dfac2e49488c7f0cd5b02ef8410720
BLAKE2b-256 7f682dc5b2554e8c43cfd8eb01fe6fc7b3368e6f7c408e275c99794d314e5585

See more details on using hashes here.

File details

Details for the file botrun_flow_lang-6.6.254-py3-none-any.whl.

File metadata

File hashes

Hashes for botrun_flow_lang-6.6.254-py3-none-any.whl
Algorithm Hash digest
SHA256 cc5f5e24a98384bfaab55a5a8276673771cdec580e233900c7dc9b0928fcf8e5
MD5 9b63b99530a4cdb7151dfd2bc00dd42d
BLAKE2b-256 e1c8003f0d1f01c8d5d68d43fe111cbd977dc41f89a75cc089d3f447f9d2562d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page