关于gpt的使用

1.安装环境(建议使用python3.9以及以上版本)

gradio==3.31.0
langchain==0.0.173
loguru==0.5.3
moviepy==1.0.3
openai==0.27.6
openai_whisper==20230314
pandas==1.3.4
pymongo==3.12.1
requests==2.28.1
retry==0.9.2
tqdm==4.65.0
whisper==1.1.10
redis
pymongo==3.12.1

2.简单实用

import os
import openai
from langchain.chat_models import AzureChatOpenAI
from langchain import PromptTemplate, LLMChain
from common.logUtil_2 import log_debug

API_KEY = "sk-"
AZURE_OPENAI_API_KEY =  "xxxxxx"  # azure
AZURE_OPENAI_BASE_URL = "https://openaiyj.openai.azure.com/"
AZURE_OPENAI_AREA = "eastus"
AZURE_DEPLOYMENT_NAME = "gpt3"
AZURE_EMBEDDING_DEPLOYMENT_NAME = "embedding"
AZURE_API_VERSION = "2023-03-15-preview"
AZURE_API_TYPE = "azure"
AZURE_API_TEMPERATRUE = 0.3




def setup_llm_azure():
    """
    创建返回langchain azure的ChatOpenAI对象
- openai_api_base:Azure OpenAI API 的基本 URL。这是用于与 Azure OpenAI 服务进行通信的 API 端点的基本 URL。
- openai_api_version:Azure OpenAI API 的版本。这是指定要使用的 Azure OpenAI API 的版本号。
- deployment_name:Azure OpenAI 服务的部署名称。这是指定要使用的 Azure OpenAI 服务的部署名称。
- openai_api_key:Azure OpenAI API 的密钥。这是用于身份验证和访问 Azure OpenAI 服务的 API 密钥。
- openai_api_type:Azure OpenAI API 的类型。这是指定要使用的 Azure OpenAI API 的类型。
- temperature:生成文本的温度参数。这是控制生成文本的多样性和随机性的参数。较高的温度值会产生更多的随机性,而较低的温度值会产生更加确定性的输出。
    :return:
    """
    chat = AzureChatOpenAI(
        openai_api_base=AZURE_OPENAI_BASE_URL,
        openai_api_version=AZURE_API_VERSION,
        deployment_name=AZURE_DEPLOYMENT_NAME,
        openai_api_key=AZURE_OPENAI_API_KEY,
        openai_api_type=AZURE_API_TYPE,
        temperature=AZURE_API_TEMPERATRUE
    )
    return chat
    
TEXT_PROMPT = '''
提示内容
{变量1}{变量2}
'''
#使用方法一
async def checkup_report_format(text: str):
    """
    整理ocr提炼出的文本
    """
    llm = setup_llm_azure()
    prompt = PromptTemplate(template=TEXT_PROMPT, input_variables=["变量1"])
    #多个变量
    #prompt = PromptTemplate(template=TEXT_PROMPT, input_variables=["变量1", "变量2"])
    chain = LLMChain(llm=llm, prompt=prompt, output_key="result", verbose=True)
    result = None
    try:
        log_info("开始识别")
        print(text)
        result = await chain.arun(text)
        #多个变量
        #result = await chain.arun({"变量1": xxxx, "变量2": xxxx})
        log_info(f"结束识别-{result}")
        return result
    except Exception as e:
        log_error(f"checkup_result_format error:{e}")
        return result
        


if __name__ == '__main__':
    asyncio.run(checkup_report_format())
关键参数
API参数:
1. `prompt`: 要生成的文本的前缀

2. `engine`: GPT 模型,默认为 `davinci`

3. `stop`: 终止条件,最多生成的文本的长度,默认为 `None',表示无限制

4. `temperature`: 随机性程度,范围在 0 - 1,值越大,随机性越高,也就是生成的内容质量越低

5. `top_p`: 柔和型模式,范围在 0 - 1,值越大,数据质量越高

6. `n`: 需要生成文本的长度,默认为 1

7. `stream`: 是否流式输出,如果设置为 `true`,API 将连续的输出生成的文本,否则只返回满足 `stop` 终止条件的文本
posted @ 2023-09-27 16:58  小小咸鱼YwY  阅读(191)  评论(0编辑  收藏  举报