日常学习之:GPT3.5 API 并发调用

文章目录

library

import asyncio
import json
import os
import openai
from docx import Document
from langchain.llms import OpenAIChat

步骤描述

  • 构造针对单独 prompt 的请求函数 async_generate
  • 构造并发请求的函数 generate_concurrently
    • 在函数中将每个单独请求的 async_generate 的数据进行整合
    • 整合完了之后进行数据持久化
  • 完成

async def async_generate(llm, text):
    """

    :param llm:
    :param text:
    :return:
    """
    prompt = """
    		....
            """ + text
    resp = await llm.agenerate([f"{prompt}"])
    # 我直接让 gpt3.5 生成的 json 格式的数据,所以这里用 loads 进行 json 化,
    # 这段代码根据你自己的数据格式来调整
    data = json.loads(resp.generations[0][0].text)
    data['original_text'] = text
    return data

async def generate_concurrently(all_texts):
    """

    :param all_texts:
    :return:
    """
    llm = OpenAIChat(temperature=0.5)
    tasks = [async_generate(llm, text) for text in all_texts]
    result = await asyncio.gather(*tasks)
    # 数据都造好了之后进行持久化
    with open("output_syn.json", "w", encoding="utf-8") as f:
        json.dump(result, f, ensure_ascii=False, indent=4)
    print(result)

def main_asyn():
    """

    :return:
    """
    # 这步也是自己按照需求来,我的需求就不在这里说了,最重要的是 asyncio.run 以及构造的两个异步函数
    paths = [os.path.join("./Abstract", path) for path in os.listdir("./Abstract")]
    all_texts = []
    for path in paths:
        all_texts += read_doc(path)
    asyncio.run(generate_concurrently(all_texts[:2]))

if __name__ == '__main__':
    os.environ["OPENAI_API_KEY"] = "填入你自己的 OPENAI key"
    main_asyn()

### 使用Python代码调用GPT API实现对话功能 为了通过PythonGPT模型进行交互,需先完成`openai`库的安装[^1]。这可以通过pip工具轻松完成: ```bash pip install openai ``` 之后,在编写用于调用API的应用程序之前,还需设置OpenAI API密钥。通常做法是在脚本开头定义环境变量或直接在代码中指定(出于安全考虑推荐前者)。下面展示了一个简单的配置方式: ```python import os os.environ["OPENAI_API_KEY"] = "your_api_key_here" ``` 对于实际发起请求的部分,则可以利用`openai.Completion.create()`函数来创建并发送HTTP POST请求给GPT服务端点。此过程涉及传递多个参数以定制化响应行为,比如选择使用的引擎名称、输入提示文本以及控制输出长度等选项。 这里给出一段完整的示例代码片段,它展示了如何构建一个基本的聊天机器人应用,该应用程序能够接收用户消息作为输入,并返回由GPT生成的回答字符串: ```python import openai import os # 设置API Key openai.api_key = os.getenv("OPENAI_API_KEY") def chat_with_gpt(prompt): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", # 指定要使用的模型版本 messages=[{"role": "user", "content": prompt}], # 用户的消息内容 max_tokens=100, # 控制回复的最大token数量 temperature=0.7, # 调整创造力水平,默认值为1 n=1, # 返回的结果数目 stop=None # 定义结束序列 ) message = response.choices[0].message.content.strip() return message if __name__ == "__main__": user_input = input("请输入您的问题:") reply = chat_with_gpt(user_input) print(f"GPT的回答:\n{reply}") ``` 上述代码实现了从获取用户的提问到向其提供来自GPT模型的答案整个流程的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值