memo: langchain helloworld
pip install langchain
pip install git+https://github.com/openai/whisper.git
https://python.langchain.com/en/latest/getting_started/getting_started.html
from langchain.agents import load_tools from langchain.agents import initialize_agent from langchain.agents import AgentType from langchain.llms import OpenAI from langchain.prompts import PromptTemplate# load the language model
llm = OpenAI(temperature=0.9, n=2, best_of=2)#### generate text
text = "请介绍至少3种学习LLM技术的方法"
print(llm(text))
# ->
#1.网上学习:LLM技术可以快速熟悉和了解,网上学习可以帮助深入了解LLM技术。例如,可以在在线课程和论坛上学习LLM技术,了解编程语言,及其应用。
#2.实践:实践是学习LLM技术的重要组成部分,实践可以帮助学习者更好地理解LLM技术的原理及其应用。#### number of tokens
# pip install git+https://github.com/openai/whisper.git
print(llm.get_num_tokens("请介绍至少3种学习LLM技术的方法"))
# -> 31#### generate method
llm_result = llm.generate(["请讲个笑话", "请写首现代诗"]*2)
print(llm_result.generations)#### manage prompt
prompt = PromptTemplate(
input_variables=["product", "cs_name"],
template="欢迎使用{product}产品, 我是客服{cs_name}, 请问您有什么问题?",
)
print(prompt.format(product="人工智能机器人",cs_name="小王"))
# -> '欢迎使用人工智能机器人产品, 我是客服小王, 请问您有什么问题?'from langchain.chains import LLMChain
#### LLMChain: PromptTemplate and an LLM
chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run(product="人工智能机器人",cs_name="小王"))
# -> '\n\n我想了解你们的产品有哪些特色功能?'
#### Agent
# pip install google-search-results# Next, let's load some tools to use. Note that the `llm-math` tool uses an LLM, so we need to pass that in.
tools = load_tools(["serpapi", "llm-math"], llm=llm)# Finally, let's initialize an agent with the tools, the language model, and the type of agent we want to use.
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
# Now let's test it out!
agent.run("北京的面积有多少平方公里? 换算成有多少亩?")#### ConversationChain
from langchain import OpenAI, ConversationChainllm = OpenAI(temperature=0)
conversation = ConversationChain(llm=llm, verbose=True)output = conversation.predict(input="嗨,你好!")
print(output)output = conversation.predict(input="挺好的。刚刚在和一个AI聊天呢.")
print(output)
支 持 本 站: 捐赠服务器等运维费用,需要您的支持!
#### Chat Message from langchain.chat_models import ChatOpenAI from langchain.schema import ( AIMessage, HumanMessage, SystemMessage )chat = ChatOpenAI(temperature=0)
messages = [
SystemMessage(content="你是一位中学语文老师,擅长用通俗易懂的方法讲解古文"),
HumanMessage(content="把古文翻译成现代文. 帝武丁即位,思复兴殷,而未得其佐。三年不言,政事决定於冢宰>,以观国风。武丁夜梦得圣人,名曰说。以梦所见视群臣百吏,皆非也。於是乃使百工营求之野,得说於傅险中。是>时说为胥靡,筑於傅险。见於武丁,武丁曰是也。得而与之语,果圣人,举以为相,殷国大治。故遂以傅险姓之,号>曰傅说。")
]output = chat(messages)
print(output.content)#### MessagePromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.prompts.chat import (
ChatPromptTemplate,
SystemMessagePromptTemplate,
HumanMessagePromptTemplate,
)chat = ChatOpenAI(temperature=0)
template = "你是一位中学语文老师,擅长把 {input_language} 翻译成 {output_language}."
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
human_template = "{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
# get a chat completion from the formatted messages
output = chat(chat_prompt.format_prompt(input_language="古文", output_language="现代文", text="帝武丁即位,思复兴殷,而未得其佐").to_messages())
print(output.content)
# -> 帝武丁登基后,他想要恢复殷商的辉煌,但是他还没有找到合适的辅佐之人# LLMChain model
chain = LLMChain(llm=chat, prompt=chat_prompt)
output = chain.run(input_language="古文", output_language="白话文", text="帝武丁即位,思复兴殷,而未得其佐")
print(output)
# -> 帝武丁登基后,他想要重振殷商的国势,但是他还没有找到合适的辅佐人选。
留言簿