<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          LangChain的Hello World項(xiàng)目

          共 6226字,需瀏覽 13分鐘

           ·

          2024-06-05 23:38


          點(diǎn)擊下方“JavaEdge”,選擇“設(shè)為星標(biāo)

          第一時(shí)間關(guān)注技術(shù)干貨!

          免責(zé)聲明~

          任何文章不要過(guò)度深思!

          萬(wàn)事萬(wàn)物都經(jīng)不起審視,因?yàn)槭郎蠜](méi)有同樣的成長(zhǎng)環(huán)境,也沒(méi)有同樣的認(rèn)知水平,更「沒(méi)有適用于所有人的解決方案」;

          不要急著評(píng)判文章列出的觀點(diǎn),只需代入其中,適度審視一番自己即可,能「跳脫出來(lái)從外人的角度看看現(xiàn)在的自己處在什么樣的階段」才不為俗人

          怎么想、怎么做,全在乎自己「不斷實(shí)踐中尋找適合自己的大道」


          pip install --upgrade langchain==0.0.279 -i https://pypi.org/simple

          1 創(chuàng)建一個(gè)LLM

          • 自有算力平臺(tái)+開(kāi)源大模型(需要有龐大的GPU資源)企業(yè)自己訓(xùn)練數(shù)據(jù)
          • 第三方大模型API(openai/百度文心/阿里通義千問(wèn)...)數(shù)據(jù)無(wú)所謂

          讓LLM給孩子起具有中國(guó)特色的名字。

          在LangChain中最基本的功能就是根據(jù)文本提示來(lái)生成新的文本

          使用方法:predict

          生成結(jié)果根據(jù)你調(diào)用的模型不同而會(huì)產(chǎn)生非常不同的結(jié)果差距,并且你的模型的tempurature參數(shù)也會(huì)直接影響最終結(jié)果(即LLM的靈敏度)。

          2 自定義提示詞模版

          • 將提問(wèn)的上下文模版化
          • 支持參數(shù)傳入

          讓LLM給孩子起具有美國(guó)特色的名字。

          將提示詞模版化后會(huì)產(chǎn)生很多靈活多變的應(yīng)用,尤其當(dāng)它支持參數(shù)定義時(shí)。

          使用方法

          langchain.prompts

          3 輸出解釋器

          • 將LLM輸出的結(jié)果各種格式化
          • 支持類(lèi)似json等結(jié)構(gòu)化數(shù)據(jù)輸出

          讓LLM給孩子起4個(gè)有中國(guó)特色的名字,并以數(shù)組格式輸出而不是文本。

          與chatGPT只能輸出文本不同,langchain允許用戶(hù)自定義輸出解釋器,將生成文本轉(zhuǎn)化為序列數(shù)據(jù)使用方法:

          langchain.schema

          第一個(gè)實(shí)例

          讓LLM以人機(jī)對(duì)話(huà)的形式輸出4個(gè)名字

          名字和性別可以根據(jù)用戶(hù)輸出來(lái)相應(yīng)輸出

          輸出格式定義為數(shù)組

          4 開(kāi)始運(yùn)行

          pip install openai==v0.28.1 -i https://pypi.org/simple

          引入openai key

          import os
          os.environ["OPENAI_KEY"] = "sk-ss"
          # 為了科學(xué)上網(wǎng),所以需要添加
          os.environ["OPENAI_API_BASE"] = "https://ai-yyds.com/v1"

          從環(huán)境變量中讀?。?/p>

          import os
          openai_api_key = os.getenv("OPENAI_KEY")
          openai_api_base = os.getenv("OPENAI_API_BASE")
          print("OPENAI_API_KEY:", openai_api_key)
          print("OPENAI_PROXY:", openai_api_base)

          運(yùn)行前查看下安裝情況

          ! pip show langchain
          ! pip show openai

          openai 官方SDK

          #使用openai的官方sdk
          import openai
          import os

          openai.api_base = os.getenv("OPENAI_API_BASE")
          openai.api_key = os.getenv("OPENAI_KEY")

          messages = [
          {"role""user""content""介紹下你自己"}
          ]

          res = openai.ChatCompletion.create(
          model="gpt-3.5-turbo",
          messages=messages,
          stream=False,
          )

          print(res['choices'][0]['message']['content'])

          使用langchain調(diào)用

          #hello world
          from langchain.llms import OpenAI
          import os

          api_base = os.getenv("OPENAI_API_BASE")
          api_key = os.getenv("OPENAI_KEY")
          llm = OpenAI(
              model="gpt-3.5-turbo-instruct",
              temperature=0,
              openai_api_key=api_key,
              openai_api_base=api_base
              )
          llm.predict("介紹下你自己")

          起名大師

          #起名大師
          from langchain.llms import OpenAI
          from langchain.prompts import PromptTemplate
          import os
          api_base = os.getenv("OPENAI_API_BASE")
          api_key = os.getenv("OPENAI_KEY")
          llm = OpenAI(
              model="gpt-3.5-turbo-instruct",
              temperature=0,
              openai_api_key=api_key,
              openai_api_base=api_base
              )
          prompt = PromptTemplate.from_template("你是一個(gè)起名大師,請(qǐng)模仿示例起3個(gè){county}名字,比如男孩經(jīng)常被叫做{boy},女孩經(jīng)常被叫做{girl}")
          message = prompt.format(county="中國(guó)特色的",boy="狗蛋",girl="翠花")
          print(message)
          llm.predict(message)

          輸出:

          '\n\n男孩: 龍飛、鐵柱、小虎\n女孩: 玉蘭、梅香、小紅梅'

          格式化輸出

          from langchain.schema import BaseOutputParser
          #自定義class,繼承了BaseOutputParser
          class CommaSeparatedListOutputParser(BaseOutputParser):
              """Parse the output of an LLM call to a comma-separated list."""


              def parse(self, text: str):
                  """Parse the output of an LLM call."""
                  return text.strip().split(", ")

          CommaSeparatedListOutputParser().parse("hi, bye")
          ['hi', 'bye']

          完整案例

          #起名大師,輸出格式為一個(gè)數(shù)組
          from langchain.llms import OpenAI
          from langchain.prompts import PromptTemplate
          import os
          from langchain.schema import BaseOutputParser

          #自定義類(lèi)
          class CommaSeparatedListOutputParser(BaseOutputParser):
              """Parse the output of an LLM call to a comma-separated list."""

              def parse(self, text: str):
                  """Parse the output of an LLM call."""
                  print(text)
                  return text.strip().split(",")


          api_base = os.getenv("OPENAI_API_BASE")
          api_key = os.getenv("OPENAI_KEY")
          llm = OpenAI(
              model="gpt-3.5-turbo-instruct",
              temperature=0,
              openai_api_key=api_key,
              openai_api_base=api_base
              )
          prompt = PromptTemplate.from_template("你是一個(gè)起名大師,請(qǐng)模仿示例起3個(gè)具有{county}特色的名字,示例:男孩常用名{boy},女孩常用名{girl}。請(qǐng)返回以逗號(hào)分隔的列表形式。僅返回逗號(hào)分隔的列表,不要返回其他內(nèi)容。")
          message = prompt.format(county="美國(guó)男孩",boy="sam",girl="lucy")
          print(message)
          strs = llm.predict(message)
          CommaSeparatedListOutputParser().parse(strs)
          ['jack', ' michael', ' jason'

          寫(xiě)在最后

          公眾號(hào)JavaEdge 專(zhuān)注分享軟件開(kāi)發(fā)全生態(tài)相關(guān)技術(shù)文章視頻教程資源、熱點(diǎn)資訊等,如果喜歡我的分享,給 ???? 點(diǎn)一個(gè) ?? 或者 ?關(guān)注 都是對(duì)我最大的支持。

          歡迎長(zhǎng)按圖片加好友,我會(huì)第一時(shí)間和你分享軟件行業(yè)趨勢(shì),面試資源,學(xué)習(xí)途徑等等。

          添加好友備注【技術(shù)群交流】拉你進(jìn)技術(shù)交流群

          關(guān)注公眾號(hào)后,在后臺(tái)私信:

          • 回復(fù)架構(gòu)師,獲取架構(gòu)師學(xué)習(xí)資源教程
          • 回復(fù)【面試,獲取最新最全的互聯(lián)網(wǎng)大廠面試資料
          • 回復(fù)【簡(jiǎn),獲取各種樣式精美、內(nèi)容豐富的簡(jiǎn)歷模板
          • 回復(fù) 路線(xiàn)圖,獲取直升Java P7技術(shù)管理的全網(wǎng)最全學(xué)習(xí)路線(xiàn)圖
          • 回復(fù) 大數(shù)據(jù),獲取Java轉(zhuǎn)型大數(shù)據(jù)研發(fā)的全網(wǎng)最全思維導(dǎo)圖
          • 更多教程資源應(yīng)有盡有,歡迎關(guān)注并加技術(shù)交流群,慢慢獲取

          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  快C我啊用力嗯91影视 | 久热最新视频在线观看 | 亚洲国产精品毛片一区二区三区 | yy6080伦理 | 久久久久久久久久97 |