使⽤ LLM API使用

            主要介绍四种⼤语⾔模型(ChatGPTAPI、⽂⼼⼀⾔、讯⻜星⽕、智谱 GLM)的 API 申请指引和 Python 版本的原⽣ API 调⽤⽅法,读者按照实际情况选择⼀种⾃⼰可以 申请的 API 进⾏阅读学习即可。如果你需要在 LangChain 中使⽤ LLM,可以参照LLM 接 ⼊ LangChain中的调⽤⽅式。

    1. 使⽤ ChatGPT

            ChatGPT,发布于 2022 年 11 ⽉,是⽬前⽕热出圈的⼤语⾔模型(Large Language Model,LLM)的代表产品。在 2022 年底,也正是 ChatGPT 的惊⼈表现引发了 LLM 的 热潮。时⾄⽬前,由 OpenAI 发布的 GPT-4 仍然是 LLM 性能上限的代表,ChatGPT 也 仍然是⽬前使⽤⼈数最多、使⽤热度最⼤、最具发展潜⼒的 LLM 产品。事实上,在圈外 ⼈看来,ChatGPT 即是 LLM 的代称。

            OpenAI 除发布了免费的 Web 端产品外,也提供了多种 ChatGPT API,⽀持开发者通过 Python 或 Request 请求来调⽤ ChatGPT,向⾃⼰的服务中嵌⼊ LLM 的强⼤能⼒。可选 择的主要模型包括 ChatGPT-3.5 和 GPT-4,并且每个模型也存在多个上下⽂版本,例如 ChatGPT-3.5 就有最原始的 4K 上下⽂⻓度的模型,也有 16K 上下⽂⻓度的模型 gptturbo-16k-0613。

    1.1 API 申请指引

    获取并配置 OpenAI API key

            OpenAI API 调⽤服务是付费的,每⼀个开发者都需要⾸先获取并配置 OpenAI API key, 才能在⾃⼰构建的应⽤中访问 ChatGPT。我们将在这部分简述如何获取并配置 OpenAI API key。

            在获取 OpenAI API key 之前我们需要在OpenAI 官⽹注册⼀个账号。这⾥假设我们已经 有了 OpenAI 账号,在OpenAI 官⽹登录,登录后如下图所示:

    我们选择 API,然后点击左侧边栏的 API keys,如下图所示:

            点击 Create new secret key 按钮创建 OpenAI API key ,我们将创建好的 OpenAI API key 复制以此形式 OPENAI_API_KEY="sk-..." 保存到 .env ⽂件中,并将 .env ⽂件保存在项⽬根⽬录下。 下⾯是读取 .env ⽂件的代码:

    1. import os
    2. from dotenv import load_dotenv, find_dotenv
    3. # 读取本地/项⽬的环境变量。
    4. # find_dotenv() 寻找并定位 .env ⽂件的路径
    5. # load_dotenv() 读取该 .env ⽂件,并将其中的环境变量加载到当前的运⾏环境中
    6. # 如果你设置的是全局的环境变量,这⾏代码则没有任何作⽤。
    7. _ = load_dotenv(find_dotenv())
    8. # 如果你需要通过代理端⼝访问,还需要做如下配置
    9. os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:7890'
    10. os.environ["HTTP_PROXY"] = 'http://127.0.0.1:7890'

    1.2 调⽤ OpenAI API

            调⽤ ChatGPT 需要使⽤ ChatCompletion API,该 API 提供了 ChatGPT 系列模型的调 ⽤,包括 ChatGPT-3.5,GPT-4 等。 ChatCompletion API 调⽤⽅法如下:

    1. from openai import OpenAI
    2. client = OpenAI(
    3. # This is the default and can be omitted
    4. api_key=os.environ.get("OPENAI_API_KEY"),
    5. )
    6. # 导⼊所需库
    7. # 注意,此处我们假设你已根据上⽂配置了 OpenAI API Key,如没有将访问失败
    8. completion = client.chat.completions.create(
    9. # 调⽤模型:ChatGPT-3.5
    10. model="gpt-3.5-turbo",
    11. # messages 是对话列表
    12. messages=[
    13. {"role": "system", "content": "You are a helpful assistant."},
    14. {"role": "user", "content": "Hello!"}
    15. ]
    16. )

            调⽤该 API 会返回⼀个 ChatCompletion 对象,其中包括了回答⽂本、创建时间、id 等 属性。我们⼀般需要的是回答⽂本,也就是回答对象中的 content 信息。

    completion

    ChatCompletion(id='chatcmpl-96AakKPcgCJe6VDXhtnv525jHjE4q', choices= [Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='Hello! How can I assist you today?', role='assistant', function_call=None, tool_calls=None))], created=1711257710, model='gpt-3.5-turbo-0125', object='chat.completion', system_fingerprint='fp_3bc1b5746c', usage=CompletionUsage(completion_tokens=9, prompt_tokens=19, total_tokens=28))

    print(completion.choices[0].message.content)

    Hello! How can I assist you today? 

    此处我们详细介绍调⽤ API 常会⽤到的⼏个参数:

    • model,即调⽤的模型,⼀般取值包括“gpt-3.5-turbo”(ChatGPT-3.5)、“gpt-3.5-turbo16k-0613”(ChatGPT-3.5 16K 版本)、“gpt-4”(ChatGPT-4)。注意,不同模型的成本是不⼀样 的。
    • messages,即我们的 prompt。ChatCompletion 的 messages 需要传⼊⼀个列表,列表中包 括多个不同⻆⾊的 prompt。我们可以选择的⻆⾊⼀般包括 system:即前⽂中提到的 system prompt;user:⽤户输⼊的 prompt;assistant:助⼿,⼀般是模型历史回复,作为提供给模型的 参考内容。
    • temperature,温度。即前⽂中提到的 Temperature 系数。
    • max_tokens,最⼤ token 数,即模型输出的最⼤ token 数。OpenAI 计算 token 数是合并计 算 Prompt 和 Completion 的总 token 数,要求总 token 数不能超过模型上限(如默认模型 token 上限为 4096)。因此,如果输⼊的 prompt 较⻓,需要设置较⼩的 max_token 值,否则会 报错超出限制⻓度。

    OpenAI 提供了充分的⾃定义空间,⽀持我们通过⾃定义 prompt 来提升模型回答效果, 如下是⼀个简单的封装 OpenAI 接⼝的函数,⽀持我们直接传⼊ prompt 并获得模型的输出:

    1. from openai import OpenAI
    2. client = OpenAI(
    3. # This is the default and can be omitted
    4. api_key=os.environ.get("OPENAI_API_KEY"),
    5. )
    6. def gen_gpt_messages(prompt):
    7. '''
    8. 构造 GPT 模型请求参数 messages
    9. 请求参数:
    10. prompt: 对应的⽤户提示词
    11. '''
    12. messages = [{"role": "user", "content": prompt}]
    13. return messages
    14. def get_completion(prompt, model="gpt-3.5-turbo", temperature = 0):
    15. '''
    16. 获取 GPT 模型调⽤结果
    17. 请求参数:
    18. prompt: 对应的提示词
    19. model: 调⽤的模型,默认为 gpt-3.5-turbo,也可以按需选择 gpt-4 等其他模型
    20. temperature: 模型输出的温度系数,控制输出的随机程度,取值范围是 0~2。温度系数
    21. 越低&
    ### 关于大型语言模型API文档和服务 对于希望集成或利用大型语言模型(LLM)能力的应用程序开发者而言,访问高质量的API文档和支持服务至关重要。这些资源不仅提供了技术细节,还指导如何有效地部署和管理基于LLM的服务。 #### 主要提供商及其特点 许多云服务平台提供专门针对LLM优化过的API接口以及配套的支持服务: - **阿里云** 提供了对企业级大语言模型加速解决方案的支持,通过NVIDIA NIM容器化工具简化部署流程[^4]。 - **Google Cloud AI Platform** 支持多种机器学习框架,并允许用户轻松创建自定义预测端点来调用训练好的LLM模型[^2]。 - **AWS SageMaker** 同样支持主流ML库如TensorFlow、PyTorch等,并且内置了对大规模分布式训练的良好支持,使得构建高性能的语言处理应用成为可能[^3]。 #### 开发者友好特性 为了提高开发效率并降低进入门槛,优秀的LLM API通常具备以下特征: - **详尽的官方文档**:包括但不限于快速入门指南、最佳实践建议和技术参考手册。 - **丰富的客户端SDKs**:覆盖Python、Java等多种编程语言环境下的便捷接入方式。 - **实时在线帮助中心**:随时解答常见疑问并向用户提供最新资讯更新。 ```python import requests def call_llm_api(prompt_text): url = "https://api.example.com/v1/llm" headers = {"Authorization": "Bearer YOUR_API_KEY"} payload = { 'prompt': prompt_text, 'max_tokens': 50 } response = requests.post(url, json=payload, headers=headers) return response.json() ``` 此代码片段展示了如何使用Python向假设中的LLM API发送请求并获取响应数据。

    登录后您可以享受以下权益:

    ×
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    打赏作者

    code36

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

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

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

    打赏作者

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

    抵扣说明:

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

    余额充值

    举报

    选择你想要举报的内容(必选)
    • 内容涉黄
    • 政治相关
    • 内容抄袭
    • 涉嫌广告
    • 内容侵权
    • 侮辱谩骂
    • 样式问题
    • 其他
    点击体验
    DeepSeekR1满血版
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回顶部