langchain中的LLM模型使用介绍(azure OpenAI 用python实现流式调用stream=True)
Azure OpenAI 服务实现流式调用:用Python开启无穷创意之旅
I. Azure OpenAI 服务概述
A. Azure 提供的OpenAI 模型分类:
-
补全(completion)模型
- 功能详细介绍
- 实际利用案例
-
对话(chat)模型
- 功能详细介绍
- 实际利用案例
-
其他模型
- 功能详细介绍
- 实际利用案例
II. 使用Python调用Azure OpenAI 服务
A. 安装OpenAI的Python SDK
- 安装方式
- 必要的依赖项
B. 实现流式调用
-
配置流式调用参数
- 对stream参数的说明
- 设置stream参数为True的方法
-
流式调用的优势
- 实时获得AI模型的生成响应
- 提升用户体验
III. Azure OpenAI 的REST API
A. 了解Azure OpenAI 的推理REST API端点
- API端点的详细介绍
- 访问API端点的方式
B. 使用流式传输回部份进度
- 设置stream参数为True
- 实现流式传输的方法
IV. Azure OpenAI 服务中的内容挑选系统
A. 神经多类分类模型介绍
- 有害内容检测和挑选
- 涵盖的四个严重种别
V. 第三方开源库 LangChain 的强大功能
A. LangChain 的介绍
- 功能详细说明
- 文档地址
VI. 使用Python Flask搭建的Web服务中使用Azure OpenAI
A. 后端架构和技术选型
- 使用Python Flask框架的缘由
- Nginx的作用
B. 配置流式内容返回
- 在API中设置stream参数为True
- 获得流式内容的方法
VII. LangChain提供的流式处理功能
A. BaseCallbackHandler的使用
- 继承BaseCallbackHandler的作用
- StreamingStdOutCallbackHandler的利用案例
azure OpenAI 用python实现流式调用stream=True Tips
使用langchain进行LLM调用的技能
构建在大语言模型基础上的利用通常有两种类型:text completion和chat models。其中,text completion适用于一问一答的模式,通经常使用于知识库的构建;而chat models则适用于会话模式,可以保存上下文信息,使得模型的回复更加真实。
langchain作为一个中间粘合层,提供了统一的接口来对接底层的大语言模型。目前,langchain支持多个海外主流的大语言模型,如openai,azure openai,AmazonAPI,Hugging Face Hub等,而且也支持国内的大语言模型。如果langchain没有支持你想要的LLM,你可以尝试自定义LLM。
简单调用LLM
langchain提供了两种LLM调用方式:
- 直接调用方式:使用
llm(prompt: str)
进行调用。 - 生成方式:使用
llm.generate(prompts: List[str])
进行调用,传入一个字符串列表用于生成复杂的结果。
预定义LLM和自定义LLM
langchain目前支持多种预定义的LLM,如OpenAI, PromptLayerOpenAI, ChatOpenAI和Anthropic等。另外,你也能够自定义LLM,只需继承LLM
类,并实现_call
方法来运行LLM。
使用FakeLLM进行调试
为了在开发进程中节省本钱,langchain提供了FakeLLM
来进行调试。你可以手动设置回复内容,方便自动化测试。
LLM的高级用法
除基本的LLM调用外,langchain还提供了一些高级用法。
- 异步调用:对支持异步调用的LLM,你可使用
llm.agenerate(prompts: List[str])
进行异步调用,以提高性能。 - 缓存功能:langchain还提供了缓存功能,可以免重复要求LLM。你可以选择区别的缓存方法,如
InMemoryCache
、FullLLMCache
、SQLAlchemyCache
、SQLiteCache
和RedisCache
等。 - 保存LLM配置:你可以将LLM相关的参数以文本情势保存到文件,并通过
load_llm()
加载配置。 - 流式处理:为了提高响应速度,langchain推出了流式响应功能,并及时返回部份响应给用户。
综上所述,使用langchain进行LLM调用时,你可以灵活选择预定义LLM或自定义LLM,并可以根据需要使用高级用法来提高效力和性能。
azure OpenAI 用python实现流式调用stream=True的常见问答Q&A
Q: 怎样使用Python调用Azure OpenAi API?
A: 使用Python调用Azure OpenAi API可以通过以下步骤:
- 安装Azure OpenAi Python SDK。
- 获得Azure OpenAi API密钥和终结点。
- 使用Python代码创建API客户端。
- 调用API方法以与Azure OpenAi进行交互。
下面是一个简单的示例:
# 导入Azure OpenAi SDK
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
# 设置API密钥和终结点
key = "YOUR_API_KEY"
endpoint = "YOUR_ENDPOINT"
# 创建API客户端
credential = AzureKeyCredential(key)
client = TextAnalyticsClient(endpoint=endpoint, credential=credential)
# 调用API方法
documents = ["这是一个文本分析的示例。", "这是另外一个示例。"]
response = client.analyze_sentiment(documents)
# 处理响应
for document in response:
print("文本内容:", document["text"])
print("情感分析结果:", document["sentiment"])
Q: 怎样使用流式调用Python中的OpenAi API?
A: 使用流式调用可以实时获得AI模型的生成响应,可以通过以下步骤实现:
- 在API要求中设置参数
stream=True
。 - 使用
requests
库发送POST要求。 - 使用
response.iter_lines()
方法迭代流式响应。 - 处理每行响应。
下面是一个简单的示例:
import requests
# 设置API终结点和要求URL
endpoint = "YOUR_ENDPOINT"
url = f"{endpoint}/v1/engines/davinci-codex/completions"
# 设置要求数据
data = {
"prompt": "请帮我完成这个句子:",
"max_tokens": 20,
"temperature": 0.7
}
# 发送POST要求
response = requests.post(url, json=data, stream=True)
# 迭代流式响应
for line in response.iter_lines():
if line:
# 处理每行响应
result = line.decode("utf⑻")
print(result)
Q: Azure OpenAI提供了哪些模型?
A: Azure OpenAI提供了以下三类模型:
- 补全(Completion)模型:生成对用户输入进行补充的文本。
- 对话(Chat)模型:实现与用户进行对话的文本生成。
- 语言模型(LLM):处理自然语言的模型,例如文本分类和生成。
Q: Azure OpenAI集成的内容挑选系统包括哪些功能?
A: Azure OpenAI集成的内容挑选系统包括以下功能:
- 检测和挑选有害内容的神经多类分类模型。
- 涵盖了四个种别(冤仇、性、暴力和自残)的四个严重等级。
Q: 有哪几种帮助文档可以学习Azure OpenAI服务的使用?
A: 学习Azure OpenAI服务的使用可以参考以下文档:
使用Python调用Azure OpenAI API的学习模块
Azure OpenAI内容挑选的学习模块