赞
踩
开始进行最简单的使用:通过API调用openai的模型能力
OpenAI的能力如下图:
OpenAI 的文本生成模型(通常称为生成式预训练 Transformer 或大型语言模型)经过训练可以理解自然语言、代码和图像。这些模型提供文本输出来响应其输入。这些模型的输入也称为“提示”。设计提示本质上是如何“编程”大型语言模型,通常是通过提供说明或一些如何成功完成任务的示例。
聊天模型将消息列表作为输入,并返回模型生成的消息作为输出。尽管聊天格式旨在使多轮对话变得容易,但它对于没有任何对话的单轮任务也同样有用。
import os from openai import OpenAI # 加载 .env 到环境变量 from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # 配置 OpenAI 服务,需要获取API_KEY client = OpenAI( api_key=os.getenv("OPENAI_API_KEY") ) response = client.chat.completions.create( messages=[ { "role": "user", "content": "hi,讲个笑话吧", } ], model="gpt-3.5-turbo", ) print(response)
API于 2023 年 7 月收到最终更新,并且具有与新的聊天完成端点不同的界面。输入不是消息列表,而是称为提示的自由格式文本字符串。
import os from openai import OpenAI from dotenv import load_dotenv, find_dotenv _ = load_dotenv((find_dotenv())) client = OpenAI( api_key=os.getenv("OPENAI_API_KEY") ) def get_prompt(prompt, model="gpt-3.5-turbo-instruct", ): response = client.completions.create( model=model, prompt=prompt, temperature=0.9, max_tokens=20, stream=True ) return response if __name__ == "__main__": response = get_prompt("今天我不") for chunk in response: print(chunk.choices[0].text, end="")
官网已说明停止更新Completions,推荐使用Chat Completions
带入一些业务场景来使用,机器人最开始吸引我的就是上下文的联系,调用API的时候需要把之前的聊天内容保存并再次发过去,下面用一个简单示例演示下是如何进行处理的
import json import os from openai import OpenAI from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) client = OpenAI( # defaults to os.environ.get("OPENAI_API_KEY") api_key=os.getenv("OPENAI_API_KEY") ) # 定义消息历史。先加入 system 消息,里面放入对话内容以外的 prompt messages = [ { "role": "system", "content": """ 你是环保部门的客服代表,你叫小智。可以帮助用户选择最合适的地市环保政策。地市政策包括: 所属城市:天津市 政策类型:建设实施办法 政策概要:规定了生活垃圾分类收集设施的设计、施工、验收和交付使用要求,明确了配套设施与主体工程同时设计、同时施工、同时验收、同时交付使用的要求。 适用企业类型:各类建设主体。 所属城市:上海市 政策类型:生态环境准入清单 政策概要:提出了鼓励、引导和禁止事项,明确了生态环境准入要求,规范了企业行为,强化了环保监管。 适用企业类型:上海市行政区域内的企业。 所属城市:重庆市 政策类型:城市供水节水条例 政策概要:规范了城市供水、用水、节水等行为,保障城市生活、生产和其他用水需求,促进高质量发展、创造高品质生活。 适用企业类型:重庆市行政区域内的供水企业和用户。 所属城市:马鞍山市 政策类型:建筑垃圾管理办法 政策概要:规定了建筑垃圾的排放、运输、消纳和处理等行为,加强了对建筑垃圾的管理和监督,促进环境保护和资源利用。 适用企业类型:马鞍山市行政区域内的建设单位、施工单位和建筑垃圾运输单位。 注意使用 JSON 格式输出回答。 """ } ] def get_completion(prompt, model="gpt-3.5-turbo-1106"): # 把用户输入加入消息历史 messages.append({"role": "user", "content": prompt}) response = client.chat.completions.create( model=model, messages=messages, temperature=0, response_format={"type": "json_object"} ) msg = response.choices[0].message.content # 把模型生成的回复加入消息历史。很重要,否则下次调用模型时,模型不知道上下文 messages.append({"role": "assistant", "content": msg}) return msg if __name__ == "__main__": get_completion("有北京的政策吗?") get_completion("城市供水有哪些政策?") get_completion("这是哪个城市的政策?") print(messages)
返回结果
[ { "role": "system", "content": "\n你是环保部门的客服代表,你叫小智。可以帮助用户选择最合适的地市环保政策。地市政策包括:\n天津市\n政策类型:建设实施办法\n政策概要:规定了生活垃圾分类收集设施的设计、施工、验收和交付使用要求,明确了配套设施与主体工程同时设计、同时施工、同时验收、同时交付使用的要求。\n适用企业类型:各类建设主体。\n\n上海市\n政策类型:生态环境准入清单\n政策概要:提出了鼓励、引导和禁止事项,明确了生态环境准入要求,规范了企业行为,强化了环保监管。\n适用企业类型:上海市行政区域内的企业。\n\n重庆市\n政策类型:城市供水节水条例\n政策概要:规范了城市供水、用水、节水等行为,保障城市生活、生产和其他用水需求,促进高质量发展、创造高品质生活。\n适用企业类型:重庆市行政区域内的供水企业和用户。\n\n马鞍山市\n政策类型:建筑垃圾管理办法\n政策概要:规定了建筑垃圾的排放、运输、消纳和处理等行为,加强了对建筑垃圾的管理和监督,促进环境保护和资源利用。\n适用企业类型:马鞍山市行政区域内的建设单位、施工单位和建筑垃圾运输单位。\n" }, { "role": "user", "content": "有北京的政策吗?" }, { "role": "assistant", "content": "很抱歉,我没有北京市的政策信息。如果您需要了解北京市的环保政策,建议您直接咨询北京市环保部门或者相关政府部门,他们会提供最准确和最及时的信息。" }, { "role": "user", "content": "城市供水有哪些政策?" }, { "role": "assistant", "content": "城市供水的政策主要包括以下几个方面:\n\n1. 水资源管理政策:针对城市供水的水资源管理,包括水资源保护、水资源配置、水资源利用效率等方面的政策。\n\n2. 水质管理政策:针对城市供水的水质管理,包括水源地保护、水处理工艺、水质监测等方面的政策。\n\n3. 供水设施建设政策:针对城市供水设施的建设和维护,包括供水管网建设、水厂建设、水泵站建设等方面的政策。\n\n4. 供水价格管理政策:针对城市供水的价格管理,包括水价制定、水费收取、价格监管等方面的政策。\n\n5. 供水节水政策:针对城市供水的节水管理,包括水资源合理利用、水损失控制、水价激励等方面的政策。\n\n具体的城市供水政策会因地区而异,您可以咨询当地的环保部门或者供水公司,了解更详细的政策信息。" }, { "role": "user", "content": "这是哪个城市的政策?" }, { "role": "assistant", "content": "这是一个通用的描述,适用于各个城市的供水政策。不同城市的具体政策可能会有所不同,您可以咨询所在城市的环保部门或供水公司,获取更准确的信息。" } ]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。