<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Mô hình Ngôn ngữ Hỗ trợ Chương trình &#40;PAL&#41;</title>
<meta name="description" content="Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Mô hình Ngôn ngữ Hỗ trợ Chương trình &#40;PAL&#41; - Savefile - Blogs -...">
<meta name="author" content="Blog FOSS by Lê Trung Nghĩa">
<meta name="copyright" content="Blog FOSS by Lê Trung Nghĩa [webmaster@vinades.vn]">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Mô hình Ngôn ngữ Hỗ trợ Chương trình &#40;PAL&#41;">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Blogs -...">
<meta property="og:site_name" content="Blog FOSS by Lê Trung Nghĩa">
<meta property="og:url" content="https://letrungnghia.mangvn.org/savefile/Education/huong-dan-ky-thuat-loi-nhac-ky-thuat-viet-loi-nhac-mo-hinh-ngon-ngu-ho-tro-chuong-trinh-pal-7805.html">
<link rel="shortcut icon" href="https://letrungnghia.mangvn.org/favicon.ico">
<link rel="canonical" href="https://letrungnghia.mangvn.org/savefile/Education/huong-dan-ky-thuat-loi-nhac-ky-thuat-viet-loi-nhac-mo-hinh-ngon-ngu-ho-tro-chuong-trinh-pal-7805.html">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/" title="Blogs" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Government/" title="Blogs - Government" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Policy/" title="Blogs - Policy" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Philosophy/" title="Blogs - Philosophy" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Security/" title="Blogs - Security" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Legal/" title="Blogs - Legal" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Education/" title="Blogs - Education" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Business/" title="Blogs - Business" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Community/" title="Blogs - Community" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Interoperability/" title="Blogs - Interoperability" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Standards/" title="Blogs - Standards" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Author/" title="Blogs - Author" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Opinions/" title="Blogs - Opinions" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/CC/" title="Blogs - CC" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Cloud/" title="Blogs - Cloud" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Hardware/" title="Blogs - Hardware" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Software/" title="Blogs - Software" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Statistics/" title="Blogs - Statistics" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Trends/" title="Blogs - Trends" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/China/" title="Blogs - China" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/OSs/" title="Blogs - OSs" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Blogs/" title="Blogs - Blogs" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/Outsourcing/" title="Blogs - Outsourcing" type="application/rss+xml">
<link rel="alternate" href="https://letrungnghia.mangvn.org/rss/elearning/" title="Blogs - Elearning" type="application/rss+xml">
<link rel="preload" as="style" href="https://letrungnghia.mangvn.org/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://letrungnghia.mangvn.org/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://letrungnghia.mangvn.org/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://letrungnghia.mangvn.org/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://letrungnghia.mangvn.org/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://letrungnghia.mangvn.org/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="style" href="https://letrungnghia.mangvn.org/assets/css/default.vi.1106.css" type="text/css">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://letrungnghia.mangvn.org/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://letrungnghia.mangvn.org/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://letrungnghia.mangvn.org/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://letrungnghia.mangvn.org/themes/default/css/style.css">
<link rel="stylesheet" href="https://letrungnghia.mangvn.org/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://letrungnghia.mangvn.org/themes/default/css/news.css">
<link rel="stylesheet" href="https://letrungnghia.mangvn.org/themes/default/css/custom.css">
<link rel="stylesheet" href="https://letrungnghia.mangvn.org/assets/css/default.vi.1106.css">
<style type="text/css">
	body{background: #fff;}
</style>
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-70254229-3', '');
ga('send', 'pageview');
</script>
</head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">Blog FOSS by Lê Trung Nghĩa</h2>
		<p class="pull-right"><a title="Blog FOSS by Lê Trung Nghĩa" href="https://letrungnghia.mangvn.org/">https://letrungnghia.mangvn.org</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Mô hình Ngôn ngữ Hỗ trợ Chương trình &#40;PAL&#41;</h1>
		<ul class="list-inline">
			<li>Thứ bảy - 15/11/2025 06:09</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Mô hình Ngôn ngữ Hỗ trợ Chương trình &#40;PAL&#41;" src="https://letrungnghia.mangvn.org/uploads/letrungnghia/news/2025/0_prompt-engineering.png" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<div class="bodytext margin-bottom-lg" id="news-bodyhtml">
<p align="justify"><b><span style="background: rgb(255, 255, 0);">PAL (Program-Aided Language Models)</span></b></p>

<p align="justify">Theo: <a href="https://www.promptingguide.ai/techniques/pal">https://www.promptingguide.ai/techniques/pal</a></p>

<p align="justify"><a href="https://arxiv.org/abs/2211.10435">Gao và cộng sự (2022)</a> trình bày một phương pháp sử dụng LLM để đọc các bài toán ngôn ngữ tự nhiên và tạo ra các chương trình như các bước suy luận trung gian. Được đặt tên là mô hình ngôn ngữ hỗ trợ chương trình - PAL (Program-Aided Language Model), phương pháp này khác với phương pháp lời nhắc chuỗi tư duy (CoT) ở chỗ thay vì sử dụng văn bản dạng tự do để tìm ra lời giải, nó chuyển giao bước giải cho một chương trình thực thi như trình thông dịch Python.</p>

<div class="image-center"><img alt="" height="565" src="https://giaoducmo.avnuc.vn/uploads/news/2025_11/2.14-pal.png" width="766" /></div>

<p align="center">Image Source: <a href="https://arxiv.org/abs/2211.10435" target="_blank">Gao et al., (2022)</a></p>

<p align="justify">Hãy xem xét một ví dụ sử dụng LangChain và OpenAI GPT-3. Chúng tôi quan tâm đến việc phát triển một ứng dụng đơn giản có khả năng diễn giải câu hỏi được hỏi và đưa ra câu trả lời bằng cách tận dụng trình thông dịch Python.</p>

<p align="justify">Cụ thể, chúng tôi quan tâm đến việc tạo ra một chức năng cho phép sử dụng LLM để trả lời các câu hỏi yêu cầu hiểu biết về dữ liệu. Chúng tôi sẽ cung cấp cho LLM một lời nhắc bao gồm một vài ví dụ được áp dụng <a href="https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py">từ đây</a>.</p>

<p align="justify">Đây là những nội dung chúng tôi cần:</p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western hljs java"><span class="hljs-keyword">import</span> openai</code>
<code class="western hljs python"><span class="hljs-keyword">from</span> datetime <span class="hljs-keyword">import</span> datetime</code>
<code class="western hljs python"><span class="hljs-keyword">from</span> dateutil.relativedelta <span class="hljs-keyword">import</span> relativedelta</code>
<code class="western hljs java"><span class="hljs-keyword">import</span> os</code>
<code class="western hljs python"><span class="hljs-keyword">from</span> langchain.llms <span class="hljs-keyword">import</span> OpenAI</code>
<code class="western hljs python"><span class="hljs-keyword">from</span> dotenv <span class="hljs-keyword">import</span> load_dotenv</code>
</pre>

<p>Trước tiên chúng ta hãy cấu hình một vài thứ:</p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western hljs ">load_dotenv()</code>
<code class="western hljs bash"><span class="hljs-comment"># API configuration</span></code>
<code class="western hljs bash">openai.api_key = os.getenv(<span class="hljs-string">&quot;OPENAI_API_KEY&quot;</span>)</code>
<code class="western hljs bash"><span class="hljs-comment"># for LangChain</span></code>
<code class="western hljs bash">os.environ&#91;<span class="hljs-string">&quot;OPENAI_API_KEY&quot;</span>&#93; = os.getenv(<span class="hljs-string">&quot;OPENAI_API_KEY&quot;</span>)</code>
</pre>

<p>Thiết lập phiên bản mô hình:</p>

<pre class="western" style="margin-left: 1.25cm; margin-bottom: 0.5cm">
<code class="western hljs bash"><span style="background: transparent">llm = OpenAI(model_name=<span class="hljs-string">&#039;text-davinci-003&#039;</span>, temperature=<span class="hljs-number">0</span>)</span></code></pre>

<p>Thiết lập lời nhắc + câu hỏi:</p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western hljs bash">câu hỏi = <span class="hljs-string">&quot;Hôm nay là ngày 27 tháng 2 năm 2023. Tôi sinh ra cách đây đúng 25 năm. Vậy ngày sinh của tôi là bao nhiêu theo MM/DD/YYYY?&quot;</span></code>
<code class="western hljs bash">DATE_UNDERSTANDING_PROMPT = <span class="hljs-string">&quot;&quot;</span><span class="hljs-string">&quot;</span></code>
<code class="western hljs bash"><span class="hljs-comment"># Hỏi: 36 giờ nữa là năm 2015. Vậy một tuần nữa tính từ hôm nay theo định dạng MM/DD/YYYY là ngày nào?</span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Nếu 36 giờ nữa là năm 2015, thì hôm nay là 36 giờ trước đó.</span></span></code>
<code class="western hljs ini"><span class="hljs-setting">today = <span class="hljs-value">datetime(<span class="hljs-number">2015</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>) - relativedelta(hours=<span class="hljs-number">36</span>)</span></span></code><code class="western hljs "> </code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Một tuần nữa tính từ hôm nay,</span></span></code>
<code class="western hljs ini"><span class="hljs-setting">one_week_from_today = <span class="hljs-value">today + relativedelta(weeks=<span class="hljs-number">1</span>)</span></span></code>
<code class="western hljs bash"><span class="hljs-comment"># Câu trả lời được định dạng bằng %m/%d/%Y là</span></code>
<code class="western hljs bash">one_week_from_today.strftime(<span class="hljs-string">&#039;%m/%d/%Y&#039;</span>)</code><code class="western hljs "> </code>
<code class="western hljs bash"><span class="hljs-comment"># Hỏi: Ngày đầu tiên của năm 2019 là Thứ Ba, và hôm nay là Thứ Hai đầu tiên của năm 2019. Vậy hôm nay là ngày nào theo định dạng MM/DD/YYYY?</span></code>
<code class="western hljs bash"><span class="hljs-comment"># Nếu ngày đầu tiên của năm 2019 là Thứ Ba, và hôm nay là Thứ Hai đầu tiên của 2019, thì hôm nay là 6 ngày sau.</span></code>
<code class="western hljs ini"><span class="hljs-setting">today = <span class="hljs-value">datetime(<span class="hljs-number">2019</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>) + relativedelta(days=<span class="hljs-number">6</span>)</span></span></code>
<code class="western hljs bash"><span class="hljs-comment"># Câu trả lời được định dạng bằng %m/%d/%Y là</span></code><code class="western hljs "> </code><code class="western hljs bash">today.strftime(<span class="hljs-string">&#039;%m/%d/%Y&#039;</span>)</code>
<code class="western hljs bash"><span class="hljs-comment"># Hỏi: Buổi hòa nhạc dự kiến diễn ra vào ngày 06/01/1943, nhưng bị hoãn lại một ngày so với hôm nay. 10 ngày trước là ngày nào theo định dạng MM/DD/YYYY?</span></code>
<code class="western hljs bash"><span class="hljs-comment"># Nếu buổi hòa nhạc dự kiến diễn ra vào ngày 06/01/1943, nhưng bị hoãn lại một ngày so với hôm nay, thì hôm nay là một ngày sau.</span></code>
<code class="western hljs ini"><span class="hljs-setting">today = <span class="hljs-value">datetime(<span class="hljs-number">1943</span>, <span class="hljs-number">6</span>, <span class="hljs-number">1</span>) + relativedelta(days=<span class="hljs-number">1</span>)</span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># 10 ngày trước,</span></span></code>
<code class="western hljs ini"><span lang="vi-VN"><span class="hljs-setting">ten_days_ago = <span class="hljs-value">today - relativedelta(days=<span class="hljs-number">10</span>)</span></span></span></code>
<code class="western hljs bash"><span class="hljs-comment"># Câu trả lời được định dạng bằng %m/%d/%Y là ten_days_ago.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western hljs bash"><span class="hljs-comment"># Hỏi: Hôm nay là ngày 19/4/1969. Vậy 24 giờ sau đó tính theo MM/DD/YYYY là ngày nào?</span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Hôm nay là ngày 19/4/1969.</span></span></code>
<code class="western hljs ini"><span lang="vi-VN"><span class="hljs-setting">today = <span class="hljs-value">datetime(<span class="hljs-number">1969</span>, <span class="hljs-number">4</span>, <span class="hljs-number">19</span>)</span></span></span></code>
<code class="western hljs bash"><span class="hljs-comment"># 24 giờ sau,</span></code>
<code class="western hljs ini"><span class="hljs-setting">later = <span class="hljs-value">today + relativedelta(hours=<span class="hljs-number">24</span>)</span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Câu trả lời được định dạng theo %m/%d/%Y là today.strftime(&#039;%m/%d/%Y&#039;)</span></span></code>
<code class="western hljs bash"><span class="hljs-comment"># Hỏi: Jane nghĩ hôm nay là ngày 11/3/2002, nhưng thực tế hôm nay là ngày 12/3, tức là muộn hơn 1 ngày. Vậy 24 giờ sau đó tính theo MM/DD/YYYY là ngày nào?</span></code>
<code class="western hljs bash"><span class="hljs-comment"># Nếu Jane nghĩ hôm nay là ngày 11/3/2002, nhưng thực tế hôm nay là ngày 12/3, thì hôm nay là 3/12/2002.</span></code>
<code class="western hljs ini"><span lang="vi-VN"><span class="hljs-setting">today = <span class="hljs-value">datetime(<span class="hljs-number">2002</span>, <span class="hljs-number">3</span>, <span class="hljs-number">12</span>)</span></span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># 24 giờ sau,</span></span></code>
<code class="western hljs ini"><span lang="vi-VN"><span class="hljs-setting">later = <span class="hljs-value">today + relativedelta(hours=<span class="hljs-number">24</span>)</span></span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Câu trả lời được định dạng theo %m/%d/%Y là later.strftime(&#039;%m/%d/%Y&#039;)</span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Hỏi: Jane sinh vào ngày cuối cùng của tháng 2 năm 2001. Hôm nay là sinh nhật 16 tuổi của cô ấy. Vậy ngày hôm qua là ngày nào theo định dạng MM/DD/YYYY?</span></span></code>
<code class="western hljs bash"><span class="hljs-comment"># Nếu Jane sinh vào ngày cuối cùng của tháng 2 năm 2001 và hôm nay là sinh nhật 16 tuổi của cô ấy, thì hôm nay là 16 năm sau.</span></code>
<code class="western hljs ini"><span lang="vi-VN"><span class="hljs-setting">today = <span class="hljs-value">datetime(<span class="hljs-number">2001</span>, <span class="hljs-number">2</span>, <span class="hljs-number">28</span>) + relativedelta(years=<span class="hljs-number">16</span>)</span></span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Hôm qua,</span></span></code>
<code class="western hljs ini"><span class="hljs-setting">yesterday = <span class="hljs-value">today - relativedelta(days=<span class="hljs-number">1</span>)</span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Câu trả lời được định dạng theo %m/%d/%Y là ngày hôm qua.strftime(&#039;%m/%d/%Y&#039;)</span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Q: {câu hỏi}</span></span></code>
<code class="western hljs bash"><span class="hljs-string">&quot;&quot;</span><span class="hljs-string">&quot;.strip() + &#039;\n&#039;</span></code>
<code class="western hljs ini"><span class="hljs-setting">llm_out = <span class="hljs-value">llm(DATE_UNDERSTANDING_PROMPT.format(question=question))</span></span></code>
<code class="western hljs php"><span class="hljs-keyword">print</span>(llm_out)</code></pre>

<p>Điều này sẽ đưa ra kết quả sau:</p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western hljs bash"><span class="hljs-comment"># Nếu hôm nay là ngày 27 tháng 2 năm 2023 và tôi sinh ra đúng 25 năm trước, thì tôi đã sinh ra 25 năm trước đó.</span></code>
<code class="western hljs ini"><span class="hljs-setting">today = <span class="hljs-value">datetime(<span class="hljs-number">2023</span>, <span class="hljs-number">2</span>, <span class="hljs-number">27</span>)</span></span></code>
<code class="western hljs bash"><span class="hljs-comment"># Tôi sinh ra 25 năm trước,</span></code>
<code class="western hljs ini"><span class="hljs-setting">born = <span class="hljs-value">today - relativedelta(years=<span class="hljs-number">25</span>)</span></span></code>
<code class="western hljs bash"><span lang="vi-VN"><span class="hljs-comment"># Câu trả lời được định dạng bằng %m/%d/%Y là born.strftime(&#039;%m/%d/%Y&#039;)</span></span></code></pre>

<p><br />
&nbsp;</p>

<p>Nội dung của llm_out là một đoạn mã Python. Dưới đây, lệnh exec được sử dụng để thực thi đoạn mã Python này.</p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western hljs bash"><span class="hljs-keyword">exec</span>(llm_out)</code>
<code class="western hljs php"><span class="hljs-keyword">print</span>(born)</code></pre>

<p>Điều này sẽ đưa ra kết quả sau: 27/02/1998</p>

<p align="justify">&nbsp;</p>

<p align="justify"><em><span style="font-style: normal"><span style="font-weight: normal"><span style="background: transparent"><a href="https://giaoducmo.avnuc.vn/ai/huong-dan-ky-thuat-loi-nhac-ky-thuat-viet-loi-nhac-1577.html">Về ‘Kỹ thuật viết lời nhắc’</a> ………. <a href="https://giaoducmo.avnuc.vn/ai/huong-dan-ky-thuat-loi-nhac-ky-thuat-viet-loi-nhac-loi-nhac-kich-thich-dinh-huong-1591.html">Phần trước</a> ………. Phần tiếp theo</span></span></span></em></p>

<p align="justify"><em><span style="font-style: normal"><span style="font-weight: normal"><span style="background: rgb(255, 255, 0);"><a href="https://arxiv.org/abs/2211.10435" target="_blank">Gao et al., (2022)</a> presents a method that uses LLMs to read natural language problems and generate programs as the intermediate reasoning steps. Coined, program-aided language models (PAL), it differs from chain-of-thought prompting in that instead of using free-form text to obtain solution it offloads the solution step to a programmatic runtime such as a Python interpreter.</span></span></span></em></p>

<p align="center"><span style="background: rgb(255, 255, 0);">Image Source: <a href="https://arxiv.org/abs/2211.10435" target="_blank">Gao et al., (2022)</a></span></p>

<p><span style="background: rgb(255, 255, 0);">Let&#039;s look at an example using LangChain and OpenAI GPT-3. We are interested to develop a simple application that&#039;s able to interpret the question being asked and provide an answer by leveraging the Python interpreter.</span></p>

<p><span style="background: rgb(255, 255, 0);">Specifically, we are interested to create a functionality that allows the use of the LLM to answer questions that require date understanding. We will provide the LLM a prompt that includes a few exemplars which are adopted from <a href="https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py" target="_blank">here</a>.</span></p>

<p><span style="background: rgb(255, 255, 0);">These are the imports we need:</span></p>

<pre class="western">
<code class="western"><span style="background: rgb(255, 255, 0);">import openai</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from datetime import datetime</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from dateutil.relativedelta import relativedelta</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">import os</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from langchain.llms import OpenAI</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from dotenv import load_dotenv</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">Let&#039;s first configure a few things:</span></p>

<pre class="western">
<code class="western"><span style="background: rgb(255, 255, 0);">load_dotenv()</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"> </span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># API configuration</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">openai.api_key = os.getenv(&quot;OPENAI_API_KEY&quot;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"> </span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># for LangChain</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">os.environ&#91;&quot;OPENAI_API_KEY&quot;&#93; = os.getenv(&quot;OPENAI_API_KEY&quot;)</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">Setup model instance:</span></p>

<pre class="western" style="margin-bottom: 0.5cm">
<code class="western"><span style="background: rgb(255, 255, 0);">llm = OpenAI(model_name=&#039;text-davinci-003&#039;, temperature=0)</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">Setup prompt + question:</span></p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western"><span style="background: rgb(255, 255, 0);">question = &quot;Today is 27 February 2023. I was born exactly 25 years ago. What is the date I was born in MM/DD/YYYY?&quot;</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"> </span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">DATE_UNDERSTANDING_PROMPT = &quot;&quot;&quot;</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: 2015 is coming in 36 hours. What is the date one week from today in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If 2015 is coming in 36 hours, then today is 36 hours before.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2015, 1, 1) - relativedelta(hours=36)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># One week from today,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">one_week_from_today = today + relativedelta(weeks=1)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">one_week_from_today.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: The first day of 2019 is a Tuesday, and today is the first Monday of 2019. What is the date today in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If the first day of 2019 is a Tuesday, and today is the first Monday of 2019, then today is 6 days later.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2019, 1, 1) + relativedelta(days=6)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: The concert was scheduled to be on 06/01/1943, but was delayed by one day to today. What is the date 10 days ago in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If the concert was scheduled to be on 06/01/1943, but was delayed by one day to today, then today is one day later.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(1943, 6, 1) + relativedelta(days=1)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># 10 days ago,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">ten_days_ago = today - relativedelta(days=10)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">ten_days_ago.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: It is 4/19/1969 today. What is the date 24 hours later in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># It is 4/19/1969 today.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(1969, 4, 19)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># 24 hours later,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">later = today + relativedelta(hours=24)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: Jane thought today is 3/11/2002, but today is in fact Mar 12, which is 1 day later. What is the date 24 hours later in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If Jane thought today is 3/11/2002, but today is in fact Mar 12, then today is 3/12/2002.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2002, 3, 12)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># 24 hours later,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">later = today + relativedelta(hours=24)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">later.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: Jane was born on the last day of Feburary in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If Jane was born on the last day of Feburary in 2001 and today is her 16-year-old birthday, then today is 16 years later.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2001, 2, 28) + relativedelta(years=16)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Yesterday,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">yesterday = today - relativedelta(days=1)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">yesterday.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: {question}</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">&quot;&quot;&quot;.strip() + &#039;\n&#039;</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">print(llm_out)</span></code></pre>

<p align="justify"><span style="background: rgb(255, 255, 0);"><a href="https://arxiv.org/abs/2211.10435" target="_blank">Gao et al., (2022)</a> presents a method that uses LLMs to read natural language problems and generate programs as the intermediate reasoning steps. Coined, program-aided language models (PAL), it differs from chain-of-thought prompting in that instead of using free-form text to obtain solution it offloads the solution step to a programmatic runtime such as a Python interpreter.</span></p>

<p align="justify"><span style="background: rgb(255, 255, 0);">Let&#039;s look at an example using LangChain and OpenAI GPT-3. We are interested to develop a simple application that&#039;s able to interpret the question being asked and provide an answer by leveraging the Python interpreter.</span></p>

<p><span style="background: rgb(255, 255, 0);">Specifically, we are interested to create a functionality that allows the use of the LLM to answer questions that require date understanding. We will provide the LLM a prompt that includes a few exemplars which are adopted from <a href="https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py" target="_blank">here</a>.</span></p>

<p><span style="background: rgb(255, 255, 0);">These are the imports we need:</span></p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western"><span style="background: rgb(255, 255, 0);">import openai</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from datetime import datetime</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from dateutil.relativedelta import relativedelta</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">import os</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from langchain.llms import OpenAI</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">from dotenv import load_dotenv</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">Let&#039;s first configure a few things:</span></p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western"><span style="background: rgb(255, 255, 0);">load_dotenv()</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"> </span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># API configuration</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">openai.api_key = os.getenv(&quot;OPENAI_API_KEY&quot;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"> </span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># for LangChain</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">os.environ&#91;&quot;OPENAI_API_KEY&quot;&#93; = os.getenv(&quot;OPENAI_API_KEY&quot;)</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">Setup model instance:</span></p>

<pre class="western" style="margin-left: 1.25cm; margin-bottom: 0.5cm">
<code class="western"><span style="background: rgb(255, 255, 0);">llm = OpenAI(model_name=&#039;text-davinci-003&#039;, temperature=0)</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">Setup prompt + question:</span></p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western"><span style="background: rgb(255, 255, 0);">question = &quot;Today is 27 February 2023. I was born exactly 25 years ago. What is the date I was born in MM/DD/YYYY?&quot;</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"> </span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">DATE_UNDERSTANDING_PROMPT = &quot;&quot;&quot;</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: 2015 is coming in 36 hours. What is the date one week from today in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If 2015 is coming in 36 hours, then today is 36 hours before.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2015, 1, 1) - relativedelta(hours=36)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># One week from today,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">one_week_from_today = today + relativedelta(weeks=1)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">one_week_from_today.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: The first day of 2019 is a Tuesday, and today is the first Monday of 2019. What is the date today in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If the first day of 2019 is a Tuesday, and today is the first Monday of 2019, then today is 6 days later.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2019, 1, 1) + relativedelta(days=6)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: The concert was scheduled to be on 06/01/1943, but was delayed by one day to today. What is the date 10 days ago in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If the concert was scheduled to be on 06/01/1943, but was delayed by one day to today, then today is one day later.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(1943, 6, 1) + relativedelta(days=1)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># 10 days ago,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">ten_days_ago = today - relativedelta(days=10)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">ten_days_ago.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: It is 4/19/1969 today. What is the date 24 hours later in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># It is 4/19/1969 today.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(1969, 4, 19)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># 24 hours later,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">later = today + relativedelta(hours=24)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: Jane thought today is 3/11/2002, but today is in fact Mar 12, which is 1 day later. What is the date 24 hours later in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If Jane thought today is 3/11/2002, but today is in fact Mar 12, then today is 3/12/2002.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2002, 3, 12)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># 24 hours later,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">later = today + relativedelta(hours=24)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">later.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: Jane was born on the last day of Feburary in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># If Jane was born on the last day of Feburary in 2001 and today is her 16-year-old birthday, then today is 16 years later.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2001, 2, 28) + relativedelta(years=16)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Yesterday,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">yesterday = today - relativedelta(days=1)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">yesterday.strftime(&#039;%m/%d/%Y&#039;)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># Q: {question}</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">&quot;&quot;&quot;.strip() + &#039;\n&#039;</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">print(llm_out)</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">This will output the following:</span></p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western"><span style="background: rgb(255, 255, 0);"># If today is 27 February 2023 and I was born exactly 25 years ago, then I was born 25 years before.</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">today = datetime(2023, 2, 27)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># I was born 25 years before,</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">born = today - relativedelta(years=25)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);"># The answer formatted with %m/%d/%Y is</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">born.strftime(&#039;%m/%d/%Y&#039;)</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">The contents of </span><code class="western"><span style="background: rgb(255, 255, 0);">llm_out</span></code><span style="background: rgb(255, 255, 0);"> are a Python code snippet. Below, the </span><code class="western"><span style="background: rgb(255, 255, 0);">exec</span></code><span style="background: rgb(255, 255, 0);"> command is used to execute this Python code snippet.</span></p>

<pre class="western" style="margin-left: 1.25cm">
<code class="western"><span style="background: rgb(255, 255, 0);">exec(llm_out)</span></code>
<code class="western"><span style="background: rgb(255, 255, 0);">print(born)</span></code></pre>

<p><span style="background: rgb(255, 255, 0);">This will output the following: </span><code class="western"><span style="background: rgb(255, 255, 0);">02/27/1998</span></code></p>

<p align="justify">Dịch: Lê Trung Nghĩa</p>

<p align="justify">letrungnghia.foss@gmail.com</p>
</div>
		</div>
				<div id="author">
						<p>
				<strong>Tác giả:</strong>
				<a href="https://letrungnghia.mangvn.org/author/Nghia-Le-Trung/">Nghĩa Lê Trung</a>
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://letrungnghia.mangvn.org/savefile/Education/huong-dan-ky-thuat-loi-nhac-ky-thuat-viet-loi-nhac-mo-hinh-ngon-ngu-ho-tro-chuong-trinh-pal-7805.html" title="Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Mô hình Ngôn ngữ Hỗ trợ Chương trình &#40;PAL&#41;">https://letrungnghia.mangvn.org/savefile/Education/huong-dan-ky-thuat-loi-nhac-ky-thuat-viet-loi-nhac-mo-hinh-ngon-ngu-ho-tro-chuong-trinh-pal-7805.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; Blog FOSS by Lê Trung Nghĩa
		</div>
		<div id="contact">
			<a href="mailto:webmaster@vinades.vn">webmaster@vinades.vn</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://letrungnghia.mangvn.org/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="cron" src="/index.php?second=cronjobs&amp;p=j2GM97F3" width="1" height="1" /></div>
<script src="https://letrungnghia.mangvn.org/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=7,nv_my_abbr="+07",nv_cookie_prefix="nv4c_Cgoz2",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="6LcNwC8UAAAAAMm8ZTYNygweLUQtOU0IapbDRk69",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://letrungnghia.mangvn.org/assets/js/language/vi.js"></script>
<script src="https://letrungnghia.mangvn.org/assets/js/DOMPurify/purify3.js"></script>
<script src="https://letrungnghia.mangvn.org/assets/js/global.js"></script>
<script src="https://letrungnghia.mangvn.org/assets/js/site.js"></script>
<script src="https://letrungnghia.mangvn.org/themes/default/js/news.js"></script>
<script src="https://letrungnghia.mangvn.org/themes/default/js/main.js"></script>
<script src="https://letrungnghia.mangvn.org/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://letrungnghia.mangvn.org",
            "logo": "https://letrungnghia.mangvn.org/uploads/letrungnghia/le-trung-nghia.png"
        }
        </script>
<script src="https://letrungnghia.mangvn.org/themes/default/js/bootstrap.min.js"></script>
</body>
</html>