|
479 | 479 | ] |
480 | 480 | }, |
481 | 481 | { |
| 482 | + "metadata": {}, |
482 | 483 | "cell_type": "markdown", |
483 | | - "metadata": { |
484 | | - "id": "_s35YbMcpXfd" |
485 | | - }, |
486 | | - "source": [ |
487 | | - "VeADK 还支持你将短期记忆持久化存储在云端,未来的某一时刻你可以加载历史对话。\n", |
488 | | - "\n", |
489 | | - "在使用云端记忆之前,需要安装`database`相关的依赖:" |
490 | | - ] |
491 | | - }, |
492 | | - { |
493 | | - "cell_type": "code", |
494 | | - "execution_count": null, |
495 | | - "metadata": { |
496 | | - "id": "3J7csxCJt9H1" |
497 | | - }, |
498 | | - "outputs": [], |
499 | | - "source": [ |
500 | | - "%pip install veadk-python[database] --quiet" |
501 | | - ] |
| 484 | + "source": "VeADK 还支持你将短期记忆持久化存储在云端,未来的某一时刻你可以加载历史对话。" |
502 | 485 | }, |
503 | 486 | { |
| 487 | + "metadata": {}, |
504 | 488 | "cell_type": "markdown", |
505 | | - "metadata": { |
506 | | - "id": "VWTlOcEJwBrh" |
507 | | - }, |
508 | | - "source": [ |
509 | | - "使用 MySQL 作为短期记忆的数据库后端:" |
510 | | - ] |
| 489 | + "source": "使用 MySQL 作为短期记忆的数据库后端:" |
511 | 490 | }, |
512 | 491 | { |
513 | 492 | "cell_type": "code", |
|
583 | 562 | "metadata": { |
584 | 563 | "id": "k9wKEHeYxIUT" |
585 | 564 | }, |
586 | | - "source": [ |
587 | | - "在使用记忆之前,需要安装`database`相关的依赖:\n", |
588 | | - "\n" |
589 | | - ] |
| 565 | + "source": "如果您使用知识库、长期记忆等进阶功能,请进一步安装 veadk-python 中的扩展包:" |
590 | 566 | }, |
591 | 567 | { |
592 | 568 | "cell_type": "code", |
|
595 | 571 | "id": "VZIeRU1QxHrk" |
596 | 572 | }, |
597 | 573 | "outputs": [], |
598 | | - "source": [ |
599 | | - "%pip install veadk-python[database] --quiet" |
600 | | - ] |
| 574 | + "source": "%pip install veadk-python[extensions] --quiet" |
601 | 575 | }, |
602 | 576 | { |
603 | 577 | "cell_type": "markdown", |
|
628 | 602 | "# 设置访问火山方舟的 Embedding 模型\n", |
629 | 603 | "os.environ[\"MODEL_EMBEDDING_NAME\"] = \"doubao-embedding-text-240715\"\n", |
630 | 604 | "os.environ[\"MODEL_EMBEDDING_API_BASE\"] = (\n", |
631 | | - " \"https://ark.cn-beijing.volces.com/api/v3/embeddings\"\n", |
| 605 | + " \"https://ark.cn-beijing.volces.com/api/v3/\"\n", |
632 | 606 | ")\n", |
633 | 607 | "os.environ[\"MODEL_EMBEDDING_DIM\"] = \"2560\"\n", |
634 | 608 | "os.environ[\"MODEL_EMBEDDING_API_KEY\"] = \"\"" |
|
663 | 637 | "\n", |
664 | 638 | "# 初始化一个长期记忆,采用 OpenSearch 向量化存储\n", |
665 | 639 | "# 长期记忆是跨 Session 的\n", |
666 | | - "long_term_memory = LongTermMemory(backend=\"opensearch\")\n", |
| 640 | + "long_term_memory = LongTermMemory(backend=\"opensearch\", app_name=app_name, user_id=user_id)\n", |
667 | 641 | "\n", |
668 | 642 | "agent = Agent(long_term_memory=long_term_memory)\n", |
669 | 643 | "\n", |
|
735 | 709 | "\n", |
736 | 710 | "# 初始化一个长期记忆,采用 Viking Memory 存储\n", |
737 | 711 | "# 长期记忆是跨 Session 的\n", |
738 | | - "long_term_memory = LongTermMemory(backend=\"viking\")\n", |
| 712 | + "long_term_memory = LongTermMemory(backend=\"viking\", app_name=app_name, user_id=user_id)\n", |
739 | 713 | "\n", |
740 | 714 | "agent = Agent(long_term_memory=long_term_memory)\n", |
741 | 715 | "\n", |
|
809 | 783 | "metadata": { |
810 | 784 | "id": "_jZauBoRztaU" |
811 | 785 | }, |
812 | | - "source": [ |
813 | | - "由于知识库需要用到云端的向量化存储,因此在使用知识库之前,需要安装`database`相关的依赖:" |
814 | | - ] |
| 786 | + "source": "如果您使用知识库、长期记忆等进阶功能,请进一步安装 veadk-python 中的扩展包:" |
815 | 787 | }, |
816 | 788 | { |
817 | 789 | "cell_type": "code", |
|
820 | 792 | "id": "xuozqr1Hzwjz" |
821 | 793 | }, |
822 | 794 | "outputs": [], |
823 | | - "source": [ |
824 | | - "%pip install veadk-python[database] --quiet" |
825 | | - ] |
| 795 | + "source": "%pip install veadk-python[extensions] --quiet" |
826 | 796 | }, |
827 | 797 | { |
828 | 798 | "cell_type": "markdown", |
|
852 | 822 | "# 设置访问火山方舟的 Embedding 模型\n", |
853 | 823 | "os.environ[\"MODEL_EMBEDDING_NAME\"] = \"doubao-embedding-text-240715\"\n", |
854 | 824 | "os.environ[\"MODEL_EMBEDDING_API_BASE\"] = (\n", |
855 | | - " \"https://ark.cn-beijing.volces.com/api/v3/embeddings\"\n", |
| 825 | + " \"https://ark.cn-beijing.volces.com/api/v3/\"\n", |
856 | 826 | ")\n", |
857 | 827 | "os.environ[\"MODEL_EMBEDDING_DIM\"] = \"2560\"\n", |
858 | 828 | "os.environ[\"MODEL_EMBEDDING_API_KEY\"] = \"\"" |
|
913 | 883 | } |
914 | 884 | ], |
915 | 885 | "source": [ |
916 | | - "import os\n", |
917 | | - "\n", |
918 | 886 | "from veadk import Agent, Runner\n", |
919 | 887 | "from veadk.knowledgebase.knowledgebase import KnowledgeBase\n", |
920 | 888 | "from veadk.memory.short_term_memory import ShortTermMemory\n", |
|
923 | 891 | "user_id = \"veadk_playground_user\"\n", |
924 | 892 | "session_id = \"veadk_playground_session\"\n", |
925 | 893 | "\n", |
926 | | - "if os.path.exists(knowledgebase_file):\n", |
927 | | - " with open(knowledgebase_file, \"r\", encoding=\"utf-8\") as f:\n", |
928 | | - " knowledgebase_data = [\n", |
929 | | - " line.strip() for line in f if line.strip()\n", |
930 | | - " ] # 手动切片文档内容\n", |
931 | 894 | "\n", |
932 | | - "knowledgebase = KnowledgeBase(backend=\"opensearch\") # 指定 opensearch 后端\n", |
933 | | - "knowledgebase.add(knowledgebase_data, app_name=app_name)\n", |
| 895 | + "knowledgebase = KnowledgeBase(backend=\"opensearch\", app_name=app_name) # 指定 opensearch 后端\n", |
| 896 | + "knowledgebase.add_from_files(files=[knowledgebase_file])\n", |
934 | 897 | "\n", |
935 | 898 | "agent = Agent(knowledgebase=knowledgebase)\n", |
936 | 899 | "\n", |
|
1025 | 988 | "user_id = \"veadk_playground_user\"\n", |
1026 | 989 | "session_id = \"veadk_playground_session\"\n", |
1027 | 990 | "\n", |
1028 | | - "knowledgebase = KnowledgeBase(backend=\"viking\") # 指定 viking 后端\n", |
| 991 | + "knowledgebase = KnowledgeBase(backend=\"viking\", app_name=app_name) # 指定 viking 后端\n", |
1029 | 992 | "\n", |
1030 | | - "with open(pdf_path, \"rb\") as f:\n", |
1031 | | - " knowledgebase.add(f, app_name=app_name) # 直接添加文档,无需手动切片\n", |
| 993 | + "knowledgebase.add_from_files(files=[pdf_path]) # 直接添加文档,无需手动切片\n", |
1032 | 994 | "\n", |
1033 | 995 | "agent = Agent(knowledgebase=knowledgebase)" |
1034 | 996 | ] |
|
1632 | 1594 | "</pre>\n" |
1633 | 1595 | ], |
1634 | 1596 | "text/plain": [ |
1635 | | - "✨ You're running DeepEval's latest \u001b[38;2;106;0;255mBase Evaluation \u001b[0m\u001b[1;38;2;106;0;255m[\u001b[0m\u001b[38;2;106;0;255mGEval\u001b[0m\u001b[1;38;2;106;0;255m]\u001b[0m\u001b[38;2;106;0;255m Metric\u001b[0m! \u001b[1;38;2;55;65;81m(\u001b[0m\u001b[38;2;55;65;81musing \u001b[0m\u001b[3;38;2;55;65;81mNone\u001b[0m\u001b[38;2;55;65;81m \u001b[0m\u001b[1;38;2;55;65;81m(\u001b[0m\u001b[38;2;55;65;81mLocal Model\u001b[0m\u001b[1;38;2;55;65;81m)\u001b[0m\u001b[38;2;55;65;81m, \u001b[0m\u001b[38;2;55;65;81mstrict\u001b[0m\u001b[38;2;55;65;81m=\u001b[0m\u001b[3;38;2;55;65;81mFalse\u001b[0m\u001b[38;2;55;65;81m, \u001b[0m\n", |
1636 | | - "\u001b[38;2;55;65;81masync_mode\u001b[0m\u001b[38;2;55;65;81m=\u001b[0m\u001b[3;38;2;55;65;81mTrue\u001b[0m\u001b[1;38;2;55;65;81m)\u001b[0m\u001b[38;2;55;65;81m...\u001b[0m\n" |
| 1597 | + "✨ You're running DeepEval's latest \u001B[38;2;106;0;255mBase Evaluation \u001B[0m\u001B[1;38;2;106;0;255m[\u001B[0m\u001B[38;2;106;0;255mGEval\u001B[0m\u001B[1;38;2;106;0;255m]\u001B[0m\u001B[38;2;106;0;255m Metric\u001B[0m! \u001B[1;38;2;55;65;81m(\u001B[0m\u001B[38;2;55;65;81musing \u001B[0m\u001B[3;38;2;55;65;81mNone\u001B[0m\u001B[38;2;55;65;81m \u001B[0m\u001B[1;38;2;55;65;81m(\u001B[0m\u001B[38;2;55;65;81mLocal Model\u001B[0m\u001B[1;38;2;55;65;81m)\u001B[0m\u001B[38;2;55;65;81m, \u001B[0m\u001B[38;2;55;65;81mstrict\u001B[0m\u001B[38;2;55;65;81m=\u001B[0m\u001B[3;38;2;55;65;81mFalse\u001B[0m\u001B[38;2;55;65;81m, \u001B[0m\n", |
| 1598 | + "\u001B[38;2;55;65;81masync_mode\u001B[0m\u001B[38;2;55;65;81m=\u001B[0m\u001B[3;38;2;55;65;81mTrue\u001B[0m\u001B[1;38;2;55;65;81m)\u001B[0m\u001B[38;2;55;65;81m...\u001B[0m\n" |
1637 | 1599 | ] |
1638 | 1600 | }, |
1639 | 1601 | "metadata": {}, |
|
1646 | 1608 | "</pre>\n" |
1647 | 1609 | ], |
1648 | 1610 | "text/plain": [ |
1649 | | - "✨ You're running DeepEval's latest \u001b[38;2;106;0;255mTool Correctness Metric\u001b[0m! \u001b[1;38;2;55;65;81m(\u001b[0m\u001b[38;2;55;65;81musing \u001b[0m\u001b[3;38;2;55;65;81mNone\u001b[0m\u001b[38;2;55;65;81m, \u001b[0m\u001b[38;2;55;65;81mstrict\u001b[0m\u001b[38;2;55;65;81m=\u001b[0m\u001b[3;38;2;55;65;81mFalse\u001b[0m\u001b[38;2;55;65;81m, \u001b[0m\u001b[38;2;55;65;81masync_mode\u001b[0m\u001b[38;2;55;65;81m=\u001b[0m\u001b[3;38;2;55;65;81mTrue\u001b[0m\u001b[1;38;2;55;65;81m)\u001b[0m\u001b[38;2;55;65;81m...\u001b[0m\n" |
| 1611 | + "✨ You're running DeepEval's latest \u001B[38;2;106;0;255mTool Correctness Metric\u001B[0m! \u001B[1;38;2;55;65;81m(\u001B[0m\u001B[38;2;55;65;81musing \u001B[0m\u001B[3;38;2;55;65;81mNone\u001B[0m\u001B[38;2;55;65;81m, \u001B[0m\u001B[38;2;55;65;81mstrict\u001B[0m\u001B[38;2;55;65;81m=\u001B[0m\u001B[3;38;2;55;65;81mFalse\u001B[0m\u001B[38;2;55;65;81m, \u001B[0m\u001B[38;2;55;65;81masync_mode\u001B[0m\u001B[38;2;55;65;81m=\u001B[0m\u001B[3;38;2;55;65;81mTrue\u001B[0m\u001B[1;38;2;55;65;81m)\u001B[0m\u001B[38;2;55;65;81m...\u001B[0m\n" |
1650 | 1612 | ] |
1651 | 1613 | }, |
1652 | 1614 | "metadata": {}, |
|
1727 | 1689 | "text/plain": [ |
1728 | 1690 | "\n", |
1729 | 1691 | "\n", |
1730 | | - "\u001b[38;2;5;245;141m✓\u001b[0m Evaluation completed 🎉! \u001b[1m(\u001b[0mtime taken: \u001b[1;36m24.\u001b[0m09s | token cost: \u001b[1;36m0.0\u001b[0m USD\u001b[1m)\u001b[0m\n", |
1731 | | - "» Test Results \u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m total tests\u001b[1m)\u001b[0m:\n", |
1732 | | - " » Pass Rate: \u001b[1;36m100.0\u001b[0m% | Passed: \u001b[1;32m1\u001b[0m | Failed: \u001b[1;31m0\u001b[0m\n", |
| 1692 | + "\u001B[38;2;5;245;141m✓\u001B[0m Evaluation completed 🎉! \u001B[1m(\u001B[0mtime taken: \u001B[1;36m24.\u001B[0m09s | token cost: \u001B[1;36m0.0\u001B[0m USD\u001B[1m)\u001B[0m\n", |
| 1693 | + "» Test Results \u001B[1m(\u001B[0m\u001B[1;36m1\u001B[0m total tests\u001B[1m)\u001B[0m:\n", |
| 1694 | + " » Pass Rate: \u001B[1;36m100.0\u001B[0m% | Passed: \u001B[1;32m1\u001B[0m | Failed: \u001B[1;31m0\u001B[0m\n", |
1733 | 1695 | "\n", |
1734 | 1696 | " ================================================================================ \n", |
1735 | 1697 | "\n", |
1736 | 1698 | "» What to share evals with your team, or a place for your test cases to live? ❤️ 🏡\n", |
1737 | | - " » Run \u001b[1;32m'deepeval view'\u001b[0m to analyze and save testing results on \u001b[38;2;106;0;255mConfident AI\u001b[0m.\n", |
| 1699 | + " » Run \u001B[1;32m'deepeval view'\u001B[0m to analyze and save testing results on \u001B[38;2;106;0;255mConfident AI\u001B[0m.\n", |
1738 | 1700 | "\n", |
1739 | 1701 | "\n" |
1740 | 1702 | ] |
|
1923 | 1885 | "## 云端部署" |
1924 | 1886 | ] |
1925 | 1887 | }, |
1926 | | - { |
1927 | | - "cell_type": "markdown", |
1928 | | - "metadata": { |
1929 | | - "id": "bejpQneN6XxA" |
1930 | | - }, |
1931 | | - "source": [ |
1932 | | - "为体验部署相关功能,你需要安装依赖包:" |
1933 | | - ] |
1934 | | - }, |
1935 | | - { |
1936 | | - "cell_type": "code", |
1937 | | - "execution_count": null, |
1938 | | - "metadata": { |
1939 | | - "id": "JZQPRAe96W7y" |
1940 | | - }, |
1941 | | - "outputs": [], |
1942 | | - "source": [ |
1943 | | - "%pip install veadk-python[cli] --quiet" |
1944 | | - ] |
1945 | | - }, |
1946 | 1888 | { |
1947 | 1889 | "cell_type": "markdown", |
1948 | 1890 | "metadata": { |
|
2120 | 2062 | }, |
2121 | 2063 | "language_info": { |
2122 | 2064 | "name": "python", |
2123 | | - "version": "3.10.18" |
| 2065 | + "version": "3.10.17" |
2124 | 2066 | } |
2125 | 2067 | }, |
2126 | 2068 | "nbformat": 4, |
|
0 commit comments