{"id":13399057,"url":"https://github.com/undertheseanlp/underthesea","last_synced_at":"2026-02-02T05:07:19.221Z","repository":{"id":37663716,"uuid":"83542054","full_name":"undertheseanlp/underthesea","owner":"undertheseanlp","description":"Underthesea - Vietnamese NLP Toolkit","archived":false,"fork":false,"pushed_at":"2025-03-14T00:38:57.000Z","size":174077,"stargazers_count":1518,"open_issues_count":59,"forks_count":281,"subscribers_count":80,"default_branch":"main","last_synced_at":"2025-04-28T00:47:08.504Z","etag":null,"topics":["dependency-parser","dependency-parsing","named-entity-recognition","natural-language-processing","ner","nlp","nlp-library","pos-tagging","sentence-segmentation","vietnamese","vietnamese-nlp","vietnamese-tokenizer","word-segmenter"],"latest_commit_sha":null,"homepage":"http://undertheseanlp.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/undertheseanlp.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.rst","contributing":"docs/contributing.rst","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"rain1024","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2017-03-01T10:24:26.000Z","updated_at":"2025-04-26T06:35:44.000Z","dependencies_parsed_at":"2023-12-17T20:03:14.609Z","dependency_job_id":"66f33548-bc54-470a-86d7-3ada8251db88","html_url":"https://github.com/undertheseanlp/underthesea","commit_stats":{"total_commits":706,"total_committers":16,"mean_commits":44.125,"dds":0.5552407932011332,"last_synced_commit":"dd19616960949d87604f0fc940ab23efee506feb"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/undertheseanlp%2Funderthesea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/undertheseanlp%2Funderthesea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/undertheseanlp%2Funderthesea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/undertheseanlp%2Funderthesea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/undertheseanlp","download_url":"https://codeload.github.com/undertheseanlp/underthesea/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254010792,"owners_count":21998993,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency-parser","dependency-parsing","named-entity-recognition","natural-language-processing","ner","nlp","nlp-library","pos-tagging","sentence-segmentation","vietnamese","vietnamese-nlp","vietnamese-tokenizer","word-segmenter"],"created_at":"2024-07-30T19:00:33.807Z","updated_at":"2026-02-02T05:07:19.214Z","avatar_url":"https://github.com/undertheseanlp.png","language":"Python","funding_links":["https://github.com/sponsors/rain1024"],"categories":["Thư viện / Libraries","Python","自然語言處理-越南語","Agent Integration \u0026 Deployment Tools"],"sub_categories":["函式庫","AI Developer Toolkit"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/undertheseanlp/underthesea/main/docs/img/logo.png\"/\u003e\n  \u003cbr/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pypi.python.org/pypi/underthesea\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/v/underthesea.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.python.org/pypi/underthesea\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"http://undertheseanlp.com/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/demo-live-brightgreen\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://undertheseanlp.github.io/underthesea/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/docs-live-brightgreen\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://colab.research.google.com/drive/1gD8dSMSE_uNacW4qJ-NSnvRT85xo9ZY2\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/colab-ff9f01?logo=google-colab\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.facebook.com/undertheseanlp/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Facebook-1877F2?logo=facebook\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.youtube.com/channel/UC9Jv1Qg49uprg6SjkyAqs9A\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/YouTube-FF0000?logo=youtube\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/undertheseanlp/underthesea/blob/main/docs/contribute/SPONSORS.md\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/sponsors-6-red?style=social\u0026logo=GithubSponsors\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\nOpen-source Vietnamese Natural Language Process Toolkit\n\u003c/h3\u003e\n\n`Underthesea` is:\n\n🌊 **A Vietnamese NLP toolkit.** Underthesea is a suite of open source Python modules data sets and tutorials supporting research and development in [Vietnamese Natural Language Processing](https://github.com/undertheseanlp/underthesea). We provides extremely easy API to quickly apply pretrained NLP models to your Vietnamese text, such as word segmentation, part-of-speech tagging (PoS), named entity recognition (NER), text classification and dependency parsing.\n\n🎁 [**Support Us!**](#-support-us) Every bit of support helps us achieve our goals. Thank you so much. 💝💝💝\n\n🎉 **New in v9.1.5!** Conversational AI Agent is here! Use `agent(\"Xin chào\")` to chat with an AI assistant specialized in Vietnamese NLP. Supports OpenAI and Azure OpenAI. 🚀✨\n\n## Installation\n\n\nTo install underthesea, simply:\n\n```bash\n$ pip install underthesea\n✨🍰✨\n```\n\nSatisfaction, guaranteed.\n\nInstall with extras (note: use quotes in zsh):\n\n```bash\n$ pip install \"underthesea[deep]\"    # Deep learning support\n$ pip install \"underthesea[voice]\"   # Text-to-Speech support\n$ pip install \"underthesea[agent]\"   # Conversational AI agent\n```\n\n## Tutorials\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eSentence Segmentation\u003c/a\u003e\u003c/b\u003e - Breaking text into individual sentences\n\u003ccode\u003e📜\u003c/code\u003e\n\u003c/summary\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import sent_tokenize\n    \u003e\u003e\u003e text = 'Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng. Amanda cũng thoải mái với mối quan hệ này.'\n\n    \u003e\u003e\u003e sent_tokenize(text)\n    [\n      \"Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng.\",\n      \"Amanda cũng thoải mái với mối quan hệ này.\"\n    ]\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eText Normalization\u003c/a\u003e\u003c/b\u003e - Standardizing textual data representation\n\u003ccode\u003e📜\u003c/code\u003e\n\u003c/summary\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import text_normalize\n    \u003e\u003e\u003e text_normalize(\"Ðảm baỏ chất lựơng phòng thí nghịêm hoá học\")\n    \"Đảm bảo chất lượng phòng thí nghiệm hóa học\"\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eWord Segmentation\u003c/a\u003e\u003c/b\u003e - Dividing text into individual words\n\u003ccode\u003e📜\u003c/code\u003e\n\u003c/summary\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import word_tokenize\n    \u003e\u003e\u003e text = \"Chàng trai 9X Quảng Trị khởi nghiệp từ nấm sò\"\n    \n    \u003e\u003e\u003e word_tokenize(text)\n    [\"Chàng trai\", \"9X\", \"Quảng Trị\", \"khởi nghiệp\", \"từ\", \"nấm\", \"sò\"]\n    \n    \u003e\u003e\u003e word_tokenize(sentence, format=\"text\")\n    \"Chàng_trai 9X Quảng_Trị khởi_nghiệp từ nấm sò\"\n    \n    \u003e\u003e\u003e text = \"Viện Nghiên Cứu chiến lược quốc gia về học máy\"\n    \u003e\u003e\u003e fixed_words = [\"Viện Nghiên Cứu\", \"học máy\"]\n    \u003e\u003e\u003e word_tokenize(text, fixed_words=fixed_words)\n    \"Viện_Nghiên_Cứu chiến_lược quốc_gia về học_máy\"\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003ePOS Tagging\u003c/a\u003e\u003c/b\u003e - Labeling words with their part-of-speech\n\u003ccode\u003e📜\u003c/code\u003e\n\u003c/summary\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import pos_tag\n    \u003e\u003e\u003e pos_tag('Chợ thịt chó nổi tiếng ở Sài Gòn bị truy quét')\n    [('Chợ', 'N'),\n     ('thịt', 'N'),\n     ('chó', 'N'),\n     ('nổi tiếng', 'A'),\n     ('ở', 'E'),\n     ('Sài Gòn', 'Np'),\n     ('bị', 'V'),\n     ('truy quét', 'V')]\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eChunking\u003c/a\u003e\u003c/b\u003e - Grouping words into meaningful phrases or units\n\u003ccode\u003e📜\u003c/code\u003e\n\u003c/summary\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import chunk\n    \u003e\u003e\u003e text = 'Bác sĩ bây giờ có thể thản nhiên báo tin bệnh nhân bị ung thư?'\n    \u003e\u003e\u003e chunk(text)\n    [('Bác sĩ', 'N', 'B-NP'),\n     ('bây giờ', 'P', 'B-NP'),\n     ('có thể', 'R', 'O'),\n     ('thản nhiên', 'A', 'B-AP'),\n     ('báo', 'V', 'B-VP'),\n     ('tin', 'N', 'B-NP'),\n     ('bệnh nhân', 'N', 'B-NP'),\n     ('bị', 'V', 'B-VP'),\n     ('ung thư', 'N', 'B-NP'),\n     ('?', 'CH', 'O')]\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eDependency Parsing\u003c/a\u003e\u003c/b\u003e - Analyzing grammatical structure between words\n\u003ccode\u003e⚛️\u003c/code\u003e\n\u003c/summary\u003e\n\u003cbr/\u003e\n\n- ⚛️ Deep Learning Model\n    \n    ```bash\n    $ pip install underthesea[deep]\n    ```\n    \n    ```python\n    \u003e\u003e\u003e from underthesea import dependency_parse\n    \u003e\u003e\u003e text = 'Tối 29/11, Việt Nam thêm 2 ca mắc Covid-19'\n    \u003e\u003e\u003e dependency_parse(text)\n    [('Tối', 5, 'obl:tmod'),\n     ('29/11', 1, 'flat:date'),\n     (',', 1, 'punct'),\n     ('Việt Nam', 5, 'nsubj'),\n     ('thêm', 0, 'root'),\n     ('2', 7, 'nummod'),\n     ('ca', 5, 'obj'),\n     ('mắc', 7, 'nmod'),\n     ('Covid-19', 8, 'nummod')]\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eNamed Entity Recognition\u003c/a\u003e\u003c/b\u003e -  Identifying named entities (e.g., names, locations)\n\u003ccode\u003e📜\u003c/code\u003e \u003ccode\u003e⚛️\u003c/code\u003e\n\u003c/summary\u003e\n\u003cbr/\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import ner\n    \u003e\u003e\u003e text = 'Chưa tiết lộ lịch trình tới Việt Nam của Tổng thống Mỹ Donald Trump'\n    \u003e\u003e\u003e ner(text)\n    [('Chưa', 'R', 'O', 'O'),\n     ('tiết lộ', 'V', 'B-VP', 'O'),\n     ('lịch trình', 'V', 'B-VP', 'O'),\n     ('tới', 'E', 'B-PP', 'O'),\n     ('Việt Nam', 'Np', 'B-NP', 'B-LOC'),\n     ('của', 'E', 'B-PP', 'O'),\n     ('Tổng thống', 'N', 'B-NP', 'O'),\n     ('Mỹ', 'Np', 'B-NP', 'B-LOC'),\n     ('Donald', 'Np', 'B-NP', 'B-PER'),\n     ('Trump', 'Np', 'B-NP', 'I-PER')]\n    ```\n    \n- ⚛️ Deep Learning Model\n\n    ```bash\n    $ pip install underthesea[deep]\n    ```\n    \n    ```python\n    \u003e\u003e\u003e from underthesea import ner\n    \u003e\u003e\u003e text = \"Bộ Công Thương xóa một tổng cục, giảm nhiều đầu mối\"\n    \u003e\u003e\u003e ner(text, deep=True)\n    [\n      {'entity': 'B-ORG', 'word': 'Bộ'},\n      {'entity': 'I-ORG', 'word': 'Công'},\n      {'entity': 'I-ORG', 'word': 'Thương'}\n    ]\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eText Classification\u003c/a\u003e\u003c/b\u003e - Categorizing text into predefined groups\n\u003ccode\u003e📜\u003c/code\u003e \u003ccode\u003e⚡\u003c/code\u003e\n\u003c/summary\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import classify\n    \n    \u003e\u003e\u003e classify('HLV đầu tiên ở Premier League bị sa thải sau 4 vòng đấu')\n    ['The thao']\n    \n    \u003e\u003e\u003e classify('Hội đồng tư vấn kinh doanh Asean vinh danh giải thưởng quốc tế')\n    ['Kinh doanh']\n    \n    \u003e\u003e classify('Lãi suất từ BIDV rất ưu đãi', domain='bank')\n    ['INTEREST_RATE']\n    ```\n\n- ⚡ Prompt-based Model\n\n    ```bash\n    $ pip install underthesea[prompt]\n    $ export OPENAI_API_KEY=YOUR_KEY\n    ```\n    \n    ```python\n    \u003e\u003e\u003e from underthesea import classify\n    \u003e\u003e\u003e text = \"HLV ngoại đòi gần tỷ mỗi tháng dẫn dắt tuyển Việt Nam\"\n    \u003e\u003e\u003e classify(text, model='prompt')\n    Thể thao\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eSentiment Analysis\u003c/a\u003e\u003c/b\u003e - Determining text's emotional tone or sentiment\n\u003ccode\u003e📜\u003c/code\u003e\n\u003c/summary\u003e\n\n- 📜 Usage\n\n    ```python\n    \u003e\u003e\u003e from underthesea import sentiment\n    \n    \u003e\u003e\u003e sentiment('hàng kém chất lg,chăn đắp lên dính lông lá khắp người. thất vọng')\n    'negative'\n    \u003e\u003e\u003e sentiment('Sản phẩm hơi nhỏ so với tưởng tượng nhưng chất lượng tốt, đóng gói cẩn thận.')\n    'positive'\n    \n    \u003e\u003e\u003e sentiment('Đky qua đường link ở bài viết này từ thứ 6 mà giờ chưa thấy ai lhe hết', domain='bank')\n    ['CUSTOMER_SUPPORT#negative']\n    \u003e\u003e\u003e sentiment('Xem lại vẫn thấy xúc động và tự hào về BIDV của mình', domain='bank')\n    ['TRADEMARK#positive']\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eTranslation\u003c/a\u003e\u003c/b\u003e - Translating Vietnamese text to English\n\u003ccode\u003e⚛️\u003c/code\u003e\n\u003c/summary\u003e\n\u003cbr/\u003e\n\n- ⚛️ Deep Learning Model\n\n    ```bash\n    $ pip install underthesea[deep]\n    ```\n\n    ```python\n    \u003e\u003e\u003e from underthesea import translate\n\n    \u003e\u003e\u003e translate(\"Hà Nội là thủ đô của Việt Nam\")\n    'Hanoi is the capital of Vietnam'\n\n    \u003e\u003e\u003e translate(\"Ẩm thực Việt Nam nổi tiếng trên thế giới\")\n    'Vietnamese cuisine is famous around the world'\n\n    \u003e\u003e\u003e translate(\"I love Vietnamese food\", source_lang='en', target_lang='vi')\n    'Tôi yêu ẩm thực Việt Nam'\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eLang Detect\u003c/a\u003e\u003c/b\u003e - Identifying the Language of Text\n\u003ccode\u003e⚛️\u003c/code\u003e\n\u003c/summary\u003e\n\n\u003cbr/\u003e\n\nLang Detect API. Thanks to awesome work from [FastText](https://fasttext.cc/docs/en/language-identification.html)\n\nInstall extend dependencies and models\n\n    ```bash\n    $ pip install underthesea[langdetect]\n    ```\n\nUsage examples in script\n\n    ```python\n    \u003e\u003e\u003e from underthesea import lang_detect\n    \n    \u003e\u003e\u003e lang_detect(\"Cựu binh Mỹ trả nhật ký nhẹ lòng khi thấy cuộc sống hòa bình tại Việt Nam\")\n    vi\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eText-to-Speech 🗣️\u003c/a\u003e\u003c/b\u003e - Converting written text into spoken audio\n\u003ccode\u003e⚛️\u003c/code\u003e\n\u003c/summary\u003e\n\n\u003cbr/\u003e\n\nText to Speech API. Thanks to awesome work from [NTT123/vietTTS](https://github.com/ntt123/vietTTS)\n\nInstall extend dependencies and models\n\n    ```bash\n    $ pip install \"underthesea[voice]\"\n    $ underthesea download-model VIET_TTS_V0_4_1\n    ```\n\nUsage examples in script\n\n    ```python\n    \u003e\u003e\u003e from underthesea.pipeline.tts import tts\n\n    \u003e\u003e\u003e tts(\"Cựu binh Mỹ trả nhật ký nhẹ lòng khi thấy cuộc sống hòa bình tại Việt Nam\")\n    A new audio file named `sound.wav` will be generated.\n    ```\n\nUsage examples in command line\n\n    ```sh\n    $ underthesea tts \"Cựu binh Mỹ trả nhật ký nhẹ lòng khi thấy cuộc sống hòa bình tại Việt Nam\"\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eConversational AI Agent 🤖\u003c/a\u003e\u003c/b\u003e - Chat with AI for Vietnamese NLP tasks\n\u003ccode\u003e⚡\u003c/code\u003e\n\u003c/summary\u003e\n\n\u003cbr/\u003e\n\nConversational AI Agent with OpenAI and Azure OpenAI support.\n\nInstall extend dependencies\n\n    ```bash\n    $ pip install \"underthesea[agent]\"\n    $ export OPENAI_API_KEY=your_api_key\n    # Or for Azure OpenAI:\n    # export AZURE_OPENAI_API_KEY=your_key\n    # export AZURE_OPENAI_ENDPOINT=https://xxx.openai.azure.com\n    ```\n\nUsage examples in script\n\n    ```python\n    \u003e\u003e\u003e from underthesea import agent\n\n    \u003e\u003e\u003e agent(\"Xin chào!\")\n    'Xin chào! Tôi có thể giúp gì cho bạn?'\n\n    \u003e\u003e\u003e agent(\"NLP là gì?\")\n    'NLP (Natural Language Processing) là xử lý ngôn ngữ tự nhiên...'\n\n    \u003e\u003e\u003e agent(\"Cho ví dụ về word tokenization tiếng Việt\")\n    'Word tokenization trong tiếng Việt là quá trình...'\n\n    # Reset conversation\n    \u003e\u003e\u003e agent.reset()\n    ```\n\nSupports Azure OpenAI\n\n    ```python\n    \u003e\u003e\u003e agent(\"Hello\", provider=\"azure\", model=\"my-gpt4-deployment\")\n    ```\n\nAgent with Custom Tools (Function Calling)\n\n    ```python\n    \u003e\u003e\u003e from underthesea.agent import Agent, Tool\n\n    # Define tools as functions\n    \u003e\u003e\u003e def get_weather(location: str) -\u003e dict:\n    ...     \"\"\"Get current weather for a location.\"\"\"\n    ...     return {\"location\": location, \"temp\": 25, \"condition\": \"sunny\"}\n\n    \u003e\u003e\u003e def search_news(query: str) -\u003e str:\n    ...     \"\"\"Search Vietnamese news.\"\"\"\n    ...     return f\"Results for: {query}\"\n\n    # Create agent with tools\n    \u003e\u003e\u003e my_agent = Agent(\n    ...     name=\"assistant\",\n    ...     tools=[\n    ...         Tool(get_weather, description=\"Get weather for a city\"),\n    ...         Tool(search_news, description=\"Search Vietnamese news\"),\n    ...     ],\n    ...     instruction=\"You are a helpful Vietnamese assistant.\"\n    ... )\n\n    # Agent automatically calls tools when needed\n    \u003e\u003e\u003e my_agent(\"Thời tiết ở Hà Nội thế nào?\")\n    'Thời tiết ở Hà Nội hiện tại là 25°C và nắng.'\n\n    \u003e\u003e\u003e my_agent.reset()  # Clear conversation history\n    ```\n\nUsing Default Tools (like LangChain/OpenAI tools)\n\n    ```python\n    \u003e\u003e\u003e from underthesea.agent import Agent, default_tools\n\n    # Create agent with built-in tools:\n    # calculator, datetime, web_search, wikipedia, shell, python, file ops...\n    \u003e\u003e\u003e my_agent = Agent(\n    ...     name=\"assistant\",\n    ...     tools=default_tools,\n    ... )\n\n    \u003e\u003e\u003e my_agent(\"What time is it?\")           # Uses datetime tool\n    \u003e\u003e\u003e my_agent(\"Calculate sqrt(144) + 10\")   # Uses calculator tool\n    \u003e\u003e\u003e my_agent(\"Search for Python tutorials\") # Uses web_search tool\n    ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003ca href=\"\"\u003eVietnamese NLP Resources\u003c/a\u003e\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\nList resources\n\n```bash\n$ underthesea list-data\n| Name                      | Type        | License | Year | Directory                          |\n|---------------------------+-------------+---------+------+------------------------------------|\n| CP_Vietnamese_VLC_v2_2022 | Plaintext   | Open    | 2023 | datasets/CP_Vietnamese_VLC_v2_2022 |\n| UIT_ABSA_RESTAURANT       | Sentiment   | Open    | 2021 | datasets/UIT_ABSA_RESTAURANT       |\n| UIT_ABSA_HOTEL            | Sentiment   | Open    | 2021 | datasets/UIT_ABSA_HOTEL            |\n| SE_Vietnamese-UBS         | Sentiment   | Open    | 2020 | datasets/SE_Vietnamese-UBS         |\n| CP_Vietnamese-UNC         | Plaintext   | Open    | 2020 | datasets/CP_Vietnamese-UNC         |\n| DI_Vietnamese-UVD         | Dictionary  | Open    | 2020 | datasets/DI_Vietnamese-UVD         |\n| UTS2017-BANK              | Categorized | Open    | 2017 | datasets/UTS2017-BANK              |\n| VNTQ_SMALL                | Plaintext   | Open    | 2012 | datasets/LTA                       |\n| VNTQ_BIG                  | Plaintext   | Open    | 2012 | datasets/LTA                       |\n| VNESES                    | Plaintext   | Open    | 2012 | datasets/LTA                       |\n| VNTC                      | Categorized | Open    | 2007 | datasets/VNTC                      |\n\n$ underthesea list-data --all\n```\n\nDownload resources\n\n```bash\n$ underthesea download-data CP_Vietnamese_VLC_v2_2022\nResource CP_Vietnamese_VLC_v2_2022 is downloaded in ~/.underthesea/datasets/CP_Vietnamese_VLC_v2_2022 folder\n```\n\n\u003c/details\u003e\n\n### Up Coming Features\n\n* Automatic Speech Recognition\n\n## Contributing\n\nDo you want to contribute with underthesea development? Great! Please read more details at [CONTRIBUTING.rst](https://github.com/undertheseanlp/underthesea/blob/main/docs/contribute/CONTRIBUTING.rst)\n\n## 💝 Support Us\n\nIf you found this project helpful and would like to support our work, you can just buy us a coffee ☕.\n\nYour support is our biggest encouragement 🎁!\n\n\u003cimg src=\"https://raw.githubusercontent.com/undertheseanlp/underthesea/main/docs/img/support.png\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fundertheseanlp%2Funderthesea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fundertheseanlp%2Funderthesea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fundertheseanlp%2Funderthesea/lists"}