pybragi


Namepybragi JSON
Version 0.0.21.post1 PyPI version JSON
download
home_pageNone
Summarypybragi is web server framework for fast&simple usage
upload_time2025-07-12 04:46:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# pybragi is web server framework
- tronado http&websocket impl
  - flask way
  - fastapi way
- service-discovery and service-register
  - mongo way
  - consul way
- graceful shutdown
- prometheus metrics
- benchmark tools for openai_api and http_api
- kafka producer and consumer
  - sliding window 



## commandline

```bash
# simple server
python -m pybragi.base.base_handler --port=1122      

# system info     eth0 ipv4/disk/memory/gpu
python -m pybragi.base.ps

```

```bash
# http prof
python -m pybragi.bench.http_prof --url http://10.121.0.11:18000/healthcheck --num=100 --qps=40
python -m pybragi.bench.http_prof --url http://10.121.0.11:19000/v1/chat/completions --method=POST -H "Content-Type: application/json" --body='{"model": "Qwen3-235B-A22B", "messages": [{"role": "user", "content": "你好"}], "stream": false}' --num=10 --qps=3


# llm openai
python -m pybragi.bench.llm_openai --qps=2 --url=http://localhost:30000 --api-key=aaabbb --jsonl-file=https://xxx.com/queue-2025-05-12.jsonl --num=10 --model=qwen3_235b_0419_25k  --metrics-dir='/home/cxj/self/py3_server/output'

python -m pybragi.bench.llm_openai --show-metrics-pkl='/output/llm_openai_2025-05-12T15-48-27.pkl'


| 统计类型 | prompt_len | output_len | 端到端 | ttft | itl |
|---------|-----------|-----------|-------|------|-----|
| 平均值 | 8172.300 | 235.500 | 5170.644 | 306.232 | 95.763 |
| 中位数 | 8327.000 | 237.500 | 5211.785 | 305.749 | 89.392 |
| 99分位 | 9312.820 | 270.640 | 6036.196 | 339.780 | 125.736 |
| 最大值 | 9331.000 | 271.000 | 6069.074 | 340.317 | 127.126 |



# server dao_server_discovery

python -m pybragi.server.dao_server_discovery --mongo-url "mongodb://aa:bb@127.0.0.1:3717/?authSource=llm&retryWrites=true" --mongo-db=llm --action=show_type --model-type=openai

# --mongo-db=llm --action=show --model-type=openai # openai同步流式调用

# --mongo-db=llm --action=show_type_online # api+回调
# --mongo-db=llm --action=show_type_online --model-type=openai # openai同步流式调用

# --mongo-db=llm --action=show_type # api+回调
# --mongo-db=llm --action=show_type --model-type=openai # openai同步流式调用

# --mongo-db=llm --action=show_all_online # 完全所有
# --mongo-db=llm --action=show_all # 完全所有



```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pybragi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "DeJoker <localjie@163.com>",
    "download_url": null,
    "platform": null,
    "description": "\n# pybragi is web server framework\n- tronado http&websocket impl\n  - flask way\n  - fastapi way\n- service-discovery and service-register\n  - mongo way\n  - consul way\n- graceful shutdown\n- prometheus metrics\n- benchmark tools for openai_api and http_api\n- kafka producer and consumer\n  - sliding window \n\n\n\n## commandline\n\n```bash\n# simple server\npython -m pybragi.base.base_handler --port=1122      \n\n# system info     eth0 ipv4/disk/memory/gpu\npython -m pybragi.base.ps\n\n```\n\n```bash\n# http prof\npython -m pybragi.bench.http_prof --url http://10.121.0.11:18000/healthcheck --num=100 --qps=40\npython -m pybragi.bench.http_prof --url http://10.121.0.11:19000/v1/chat/completions --method=POST -H \"Content-Type: application/json\" --body='{\"model\": \"Qwen3-235B-A22B\", \"messages\": [{\"role\": \"user\", \"content\": \"\u4f60\u597d\"}], \"stream\": false}' --num=10 --qps=3\n\n\n# llm openai\npython -m pybragi.bench.llm_openai --qps=2 --url=http://localhost:30000 --api-key=aaabbb --jsonl-file=https://xxx.com/queue-2025-05-12.jsonl --num=10 --model=qwen3_235b_0419_25k  --metrics-dir='/home/cxj/self/py3_server/output'\n\npython -m pybragi.bench.llm_openai --show-metrics-pkl='/output/llm_openai_2025-05-12T15-48-27.pkl'\n\n\n| \u7edf\u8ba1\u7c7b\u578b | prompt_len | output_len | \u7aef\u5230\u7aef | ttft | itl |\n|---------|-----------|-----------|-------|------|-----|\n| \u5e73\u5747\u503c | 8172.300 | 235.500 | 5170.644 | 306.232 | 95.763 |\n| \u4e2d\u4f4d\u6570 | 8327.000 | 237.500 | 5211.785 | 305.749 | 89.392 |\n| 99\u5206\u4f4d | 9312.820 | 270.640 | 6036.196 | 339.780 | 125.736 |\n| \u6700\u5927\u503c | 9331.000 | 271.000 | 6069.074 | 340.317 | 127.126 |\n\n\n\n# server dao_server_discovery\n\npython -m pybragi.server.dao_server_discovery --mongo-url \"mongodb://aa:bb@127.0.0.1:3717/?authSource=llm&retryWrites=true\" --mongo-db=llm --action=show_type --model-type=openai\n\n# --mongo-db=llm --action=show --model-type=openai # openai\u540c\u6b65\u6d41\u5f0f\u8c03\u7528\n\n# --mongo-db=llm --action=show_type_online # api+\u56de\u8c03\n# --mongo-db=llm --action=show_type_online --model-type=openai # openai\u540c\u6b65\u6d41\u5f0f\u8c03\u7528\n\n# --mongo-db=llm --action=show_type # api+\u56de\u8c03\n# --mongo-db=llm --action=show_type --model-type=openai # openai\u540c\u6b65\u6d41\u5f0f\u8c03\u7528\n\n# --mongo-db=llm --action=show_all_online # \u5b8c\u5168\u6240\u6709\n# --mongo-db=llm --action=show_all # \u5b8c\u5168\u6240\u6709\n\n\n\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "pybragi is web server framework for fast&simple usage",
    "version": "0.0.21.post1",
    "project_urls": {
        "Repository": "https://github.com/DeJoker/pybragi",
        "homepage": "https://github.com/DeJoker/pybragi"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6907600dd05253d870fca310a91c55fdd7c92af9b744fac7673dc29057816959",
                "md5": "34d8ec54de09f63f46d412a27fcc97b4",
                "sha256": "09bbe3bba5a3945c9278d28e6034e9fc31e95b661a4c7e295c901f94d114e71e"
            },
            "downloads": -1,
            "filename": "pybragi-0.0.21.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "34d8ec54de09f63f46d412a27fcc97b4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 71640,
            "upload_time": "2025-07-12T04:46:17",
            "upload_time_iso_8601": "2025-07-12T04:46:17.449226Z",
            "url": "https://files.pythonhosted.org/packages/69/07/600dd05253d870fca310a91c55fdd7c92af9b744fac7673dc29057816959/pybragi-0.0.21.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-12 04:46:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "DeJoker",
    "github_project": "pybragi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pybragi"
}
        
Elapsed time: 0.42611s