{"id":7226,"date":"2024-08-03T14:38:20","date_gmt":"2024-08-03T06:38:20","guid":{"rendered":"https:\/\/aict.nkust.edu.tw\/digitrans\/?p=7226"},"modified":"2024-12-13T21:11:12","modified_gmt":"2024-12-13T13:11:12","slug":"%e4%bd%bf%e7%94%a8-langchain-%e5%92%8c-gpt-4o-mini-%e5%bb%ba%e7%ab%8b%e9%9d%9e%e5%90%8c%e6%ad%a5-llm-%e6%87%89%e7%94%a8%e7%a8%8b%e5%bc%8f","status":"publish","type":"post","link":"https:\/\/aict.nkust.edu.tw\/digitrans\/?p=7226","title":{"rendered":"\u4f7f\u7528 LangChain \u548c GPT-4o Mini \u5efa\u7acb\u975e\u540c\u6b65 LLM \u61c9\u7528\u7a0b\u5f0f"},"content":{"rendered":"\n<p>2024-08-03 | givkashi<\/p>\n\n\n\n<p id=\"5bd5\">\u5728\u7576\u4eca\u4e16\u754c\uff0c\u540c\u6642\u8655\u7406\u591a\u500b\u4efb\u52d9\u7684\u80fd\u529b\u5c0d\u65bc\u958b\u767c\u4eba\u54e1\u4f86\u8aaa\u662f\u4e00\u9805\u81f3\u95dc\u91cd\u8981\u7684\u6280\u80fd\uff0c\u5c24\u5176\u662f\u5728\u4f7f\u7528\u8a9e\u8a00\u6a21\u578b\u6642\u3002\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u5011\u5c07\u9010\u6b65\u4f7f\u7528 LangChain \u548c OpenAI \u7684 GPT-4 \u6a21\u578b\u5efa\u7acb\u975e\u540c\u6b65\u7ffb\u8b6f\u670d\u52d9\u3002\u9019\u662f\u540c\u6642\u767c\u9001\u8acb\u6c42\u4e26\u63d0\u9ad8\u61c9\u7528\u7a0b\u5f0f\u6548\u80fd\u7684\u65b9\u6cd5\u4e4b\u4e00\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"7b84\">\u5148\u6c7a\u689d\u4ef6<\/h1>\n\n\n\n<p id=\"4939\">\u60a8\u53ef\u4ee5\u4f7f\u7528 pip \u5b89\u88dd\u6240\u9700\u7684\u5eab\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">!pip install -q -U langchain langchain-openai langchain_community<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"4fae\">\u7a0b\u5f0f\u78bc<\/h1>\n\n\n\n<p id=\"7bde\">\u4ee5\u4e0b\u662f\u5efa\u7acb\u975e\u540c\u6b65\u7ffb\u8b6f\u670d\u52d9\u7684\u5b8c\u6574\u7a0b\u5f0f\u78bc\u3002\u8a72\u670d\u52d9\u7372\u53d6\u82f1\u8a9e\u53e5\u5b50\u5217\u8868\u4e26\u5c07\u5176\u540c\u6642\u7ffb\u8b6f\u6210\u6cd5\u8a9e\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">  import asyncio<br>from langchain_openai import ChatOpenAI<br>from langchain.prompts import PromptTemplate<br>from langchain_core.runnables import RunnableSequence<br><br># Define your LangChain components<br>llm = ChatOpenAI(model_name='openai\/gpt-4o-mini')<br><br>template = \"Translate the following English text to French: {text}\"<br>prompt = PromptTemplate(template=template, input_variables=[\"text\"])<br><br># Combine them into a RunnableSequence<br>chain = RunnableSequence(first=prompt, last=llm)<br><br># Define an async function to run the chain<br>async def run_chain(text):<br>    return await chain.ainvoke({\"text\": text})<br><br># Define a function to run multiple chains concurrently<br>async def run_multiple_chains(texts):<br>    tasks = [run_chain(text) for text in texts]<br>    results = await asyncio.gather(*tasks)<br>    return results<br><br># List of texts to process<br>texts = [<br>    \"Hello, how are you?\",<br>    \"What is your name?\",<br>    \"Where are you from?\",<br>    \"What do you do?\"<br>]<br><br># Run the chains concurrently<br>results = asyncio.run(run_multiple_chains(texts))<br><br># Print the results<br>for result in results:<br>    print(result)<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"88c7\">\u89e3\u91cb<\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>LangChain\u00a0\u7d44\u4ef6<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ChatOpenAI<\/strong>\uff1a\u6211\u5011<code>ChatOpenAI<\/code>\u5f9e LangChain \u521d\u59cb\u5316\u6a21\u578b\uff0c\u6307\u5b9a GPT-4 \u6a21\u578b\u3002<\/li>\n\n\n\n<li><strong>PromptTemplate<\/strong>\uff1a\u6211\u5011\u5efa\u7acb\u4e00\u500b\u7528\u65bc\u5c07\u82f1\u6587\u6587\u5b57\u7ffb\u8b6f\u6210\u6cd5\u6587\u7684\u63d0\u793a\u7bc4\u672c\u3002<\/li>\n\n\n\n<li><strong>RunnableSequence<\/strong>\uff1a\u6211\u5011\u5c07\u63d0\u793a\u548c\u6a21\u578b\u7d44\u5408\u6210\u4e00\u500b\u53ef\u4ee5\u57f7\u884c\u7684\u5e8f\u5217\u3002<\/li>\n<\/ul>\n\n\n\n<p id=\"294f\"><strong>2. \u975e\u540c\u6b65\u57f7\u884c<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>run_chain<\/strong>\uff1a\u6b64\u975e\u540c\u6b65\u51fd\u6578\u91dd\u5c0d\u55ae\u4e00\u6587\u5b57\u8f38\u5165\u904b\u884c\u93c8\u3002<\/li>\n\n\n\n<li><strong>run_multiple_chains<\/strong>\uff1a\u6b64\u51fd\u6578\u63a1\u7528\u6587\u5b57\u5217\u8868\uff0c\u4e26<code>run_chain<\/code>\u4f7f\u7528 \u70ba\u6bcf\u500b\u6587\u5b57\u540c\u6642\u57f7\u884c<code>asyncio.gather<\/code>\u3002<\/li>\n<\/ul>\n\n\n\n<p id=\"a4a7\"><strong>3. \u8f38\u5165\u6587\u5b57<\/strong>\uff1a\u6211\u5011\u5b9a\u7fa9\u8981\u7ffb\u8b6f\u7684\u82f1\u6587\u53e5\u5b50\u6e05\u55ae\u3002<\/p>\n\n\n\n<p id=\"9b84\"><strong>4. \u57f7\u884c\u548c\u8f38\u51fa<\/strong>\uff1a\u6211\u5011\u540c\u6642\u57f7\u884c\u93c8\u4e26\u5217\u5370\u7d50\u679c\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"264c\">\u8f38\u51fa<\/h1>\n\n\n\n<p id=\"e654\">\u904b\u884c\u7a0b\u5f0f\u78bc\u5f8c\uff0c\u5c07\u5217\u5370\u8f38\u5165\u6587\u5b57\u7684\u7ffb\u8b6f\u3002\u4ee5\u4e0b\u662f\u6c92\u6709\u5143\u8cc7\u6599\u7684\u7d50\u679c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Bonjour, comment \u00e7a va ?<br>Quel est votre nom ?<br>D'o\u00f9 viens-tu ? (informal) or D'o\u00f9 venez-vous ? (formal)<br>Que faites-vous ?<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"a1d6\">\u7d50\u8ad6<\/h1>\n\n\n\n<p id=\"1ae2\">\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u5011\u4f7f\u7528 LangChain \u548c OpenAI \u7684 GPT-4 \u6a21\u578b\u5efa\u7acb\u4e86\u4e00\u500b\u975e\u540c\u6b65\u7ffb\u8b6f\u670d\u52d9\u3002\u9019\u7a2e\u65b9\u6cd5\u5141\u8a31\u6211\u5011\u540c\u6642\u8655\u7406\u591a\u500b\u7ffb\u8b6f\u8acb\u6c42\uff0c\u4f7f\u5176\u9ad8\u6548\u4e14\u53ef\u64f4\u5c55\u3002\u900f\u904e\u5229\u7528LangChain\u5f37\u5927\u7684\u5de5\u5177\u548cOpenAI\u7684\u5148\u9032\u6a21\u578b\uff0c\u60a8\u53ef\u4ee5\u8f15\u9b06\u5efa\u7acb\u8907\u96dc\u7684\u8a9e\u8a00\u8655\u7406\u61c9\u7528\u7a0b\u5f0f\u3002<\/p>\n\n\n\n<p>\u8cc7\u6599\u4f86\u6e90: <a href=\"https:\/\/medium.com\/@givkashi\/building-an-asynchronous-llm-application-with-langchain-and-gpt-4o-mini-4ee0964d917c\">https:\/\/medium.com\/@givkashi\/building-an-asynchronous-llm-application-with-langchain-and-gpt-4o-mini-4ee0964d917c<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>2024-08-03 | givkashi \u5728\u7576\u4eca\u4e16\u754c\uff0c\u540c\u6642\u8655\u7406\u591a\u500b\u4efb\u52d9\u7684\u80fd\u529b\u5c0d\u65bc\u958b\u767c\u4eba\u54e1\u4f86\u8aaa\u662f\u4e00\u9805\u81f3\u95dc\u91cd\u8981\u7684\u6280\u80fd\uff0c\u5c24\u5176\u662f\u5728\u4f7f\u7528\u8a9e\u8a00\u6a21\u578b\u6642\u3002\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u5011\u5c07\u9010\u6b65\u4f7f\u7528 LangC&hellip;<\/p>\n","protected":false},"author":4,"featured_media":7227,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[579,4],"tags":[40],"class_list":["post-7226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-579","category-industry-news","tag-40"],"gutentor_comment":0,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/aict.nkust.edu.tw\/digitrans\/wp-content\/uploads\/2024\/10\/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2-2024-10-18-144017.png?fit=673%2C81&ssl=1","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts\/7226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7226"}],"version-history":[{"count":2,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts\/7226\/revisions"}],"predecessor-version":[{"id":7249,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts\/7226\/revisions\/7249"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/media\/7227"}],"wp:attachment":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}