首页 > 其他分享 >AI大模型应用

AI大模型应用

时间:2024-08-21 20:48:02浏览次数:10  
标签:__ KEY AI 模型 response API https import 应用

  • 参考文档
https://creative.chat/

1.调用AI大模型API

1.1文心一言

https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application
  1. 创建应用:https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application
  2. 示例代码:https://console.bce.baidu.com/tools/?_=1692863460488#/api?product=QIANFAN&project=千帆大模型平台&parent=鉴权认证机制&api=oauth%2F2.0%2Ftoken&method=post

image-20240821132646844

import requests
import json

API_KEY = "CUJRwLhCHA8hQapnaAQsIGPR"
SECRET_KEY = "L1yYhbcZCId5iMQQsBnVXkjNOdzBAH2O"


def main():
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + get_access_token()

    payload = json.dumps({
        "system":"你是一个生活AI。对人的作息,休闲,工作,学习,娱乐,饮食,运动,健康,心理,社交,教育,娱乐知识很精通",
        "messages": [
            {
                "role": "user",
                "content": "您叫什么名字"
            },
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }

    response = requests.request("POST", url, headers=headers, data=payload)

    print(response.text)


def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))


if __name__ == '__main__':
    main()

image-20240821133637212

2大模型部署fastapi

image-20240821141739810

2.1 文心一言

  • app.py
from fastapi import FastAPI
from uvicorn import run
from Config.modules import modules

app = FastAPI()

# 自动加载模块路由
for module_name, module_path in modules.items():
    module = __import__(module_path, fromlist=['router'])
    app.include_router(module.router)

if __name__ == '__main__':
    run(app, host='0.0.0.0', port=1888)

  • config/modules.py
modules = {
    'Demo': 'Extension.Demo.route',
    'LLM': 'Extension.LLM.route',
}

  • LLM/setting.py
Erniebot_API_KEY = "CUJRwLhCHA8hQapnaAQsIGPR"
Erniebot_SECRET_KEY"L1yYhbcZCId5iMQQsBnVXkjNOdzBAH2"
Qwen_API_KEY = ""
ChatGPT_API_KEY = ""
  • LLM/llm_erniebot.py
import requests
import json
from Extension.LLM.setting import Erniebot_API_KEY, Erniebot_SECRET_KEY


def erniebot(text, ai_name, ai_role):
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + get_access_token()

    payload = json.dumps({
        "system": ai_name+' '+ai_role,
        "messages": [
            {
                "role": "user",
                "content": text
            }
        ],
        # 如果设置为False,AI可能会使用搜索功能来查找最新的信息或解决特定的查询,从而提供更准确、更及时的信息。
        "disable_search": False,
        # 如果设置为True,AI在提供信息时会尝试包含引用来源,比如网页链接、书籍引用等,这有助于验证信息的准确性和来源。
        "enable_citation": True,
    })
    headers = {
        'Content-Type': 'application/json'
    }

    response = requests.request("POST", url, headers=headers, data=payload)

    data = json.loads(response.text)

    usage = data['usage']

    result = {
        "reply": data['result'],
        "prompt_tokens": usage['prompt_tokens'],
        "completion_tokens": usage['completion_tokens'],
        "total_tokens": usage['total_tokens']
    }

    return result


def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """

    API_KEY = Erniebot_API_KEY
    SECRET_KEY = Erniebot_SECRET_KEY

    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials",
              "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))

image-20240821172804576

2.2通义千问

import random
from http import HTTPStatus
import dashscope
dashscope.api_key = "sk-3f7cd2b89a894c3e9a115f83d37c8afe"


def call_with_messages():
    messages = [{'role': 'system', 'content': '你是一个健康AI。你是一个健康专家,对人的作息,饮食,健身,营养,医学等健康方面的知识,非常精通。'},
                {'role': 'user', 'content': '你叫什么名字'}]
    response = dashscope.Generation.call(
        "qwen-turbo",
        messages=messages,
        # set the random seed, optional, default to 1234 if not set
        seed=random.randint(1, 10000),
        # set the result to be "message" format.
        result_format='message',
    )
    if response.status_code == HTTPStatus.OK:
        print(response)
    else:
        print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
            response.request_id, response.status_code,
            response.code, response.message
        ))


if __name__ == '__main__':
    call_with_messages()

image-20240821172859211

  • LLM/llm_qwen.py
import random
import dashscope
from Extension.LLM.setting import Qwen_API_KEY

dashscope.api_key = Qwen_API_KEY


def qwen(text, ai_name, ai_role):
    messages = [
        {'role': 'system', 'content': ai_name+' '+ai_role},
        {'role': 'user', 'content': text}
    ]
    response = dashscope.Generation.call(
        "qwen-turbo",
        messages=messages,
        # set the random seed, optional, default to 1234 if not set
        seed=random.randint(1, 10000),
        # set the result to be "message" format.
        result_format='message',
    )

    usage = response.usage

    data = response.output.choices
    result = {
        "reply": data[0].message.content,
        "prompt_tokens": usage.input_tokens,
        "completion_tokens": usage.output_tokens,
        "total_tokens": usage.total_tokens
    }

    return result

2.3windows部署AI大模型

2.31Windows部署通义千问

2.32Windows部署Llama 3

2.33Windows部署Stable Diffusion

标签:__,KEY,AI,模型,response,API,https,import,应用
From: https://www.cnblogs.com/banchengyanyu/p/18372529

相关文章

  • A Comparative Study of AI-Generated (GPT-4) and Human-crafted MCQs in Programmin
    文章目录题目摘要引言相关工作数据集MCQ生成提示实验设计结果讨论对教学实践的启示有效性的局限性和威胁结论和未来工作题目编程教育中人工智能生成的(GPT-4)和人类编写的MCQ的比较研究论文地址:https://dl.acm.org/doi/10.1145/3636243.3636256摘要    ......
  • Selenium + Python 自动化测试21(PO+HTML+Mail)
            我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。上一篇我们讨论了PO模式并举例说明了基本的思路,今天我们继续学习。        本篇文章我们综合一下之前学习的内容,如先将PO模式和我们生成HTML报告融合起来,综合的灵活的使用之......
  • Python个人收入影响因素模型构建:回归、决策树、梯度提升、岭回归
    全文链接:https://tecdat.cn/?p=37423原文出处:拓端数据部落公众号“你的命运早在出生那一刻起便被决定了。”这样无力的话语,无数次在年轻人的脑海中回响,尤其是在那些因地域差异而面临教育资源匮乏的年轻人中更为普遍。在中国,这种现象尤为明显:没有生在大城市的他们,从小便需面对教育......
  • 【转】管理者,一定要有道-法-术的思维模型
    我有一个观点:作为管理者,必须要有“道法术”的思维模型。具备这样的思维,才能穿透表象,站在更高的维度去解决管理上遇到的问题。今天,我们一起来聊聊这个话题。 术:学工具、学方法问题来了,什么是术?王东岳老师说:术,就是看你能驱动什么。简单来说,术,就是工具,就是你掌握的方法,......
  • 昇腾 - AscendCL C++应用开发 线程安全的队列
    昇腾-AscendCLC++应用开发线程安全的队列flyfishC++mutex各种各样的互斥锁mutex、timed_mutex、recursive_mutex、shared_mutexC++线程间同步的条件变量std::condition_variable和std::condition_variable_anyC++提供的智能指针unique_ptr、shared_ptr、wea......
  • 昇腾 - AscendCL C++应用开发 目标检测中的非极大值抑制NMS和计算候选边界框之间的交
    昇腾-AscendCLC++应用开发目标检测中的非极大值抑制(NMS,Non-MaximumSuppression)涉及计算候选边界框之间的交并比(IOU,IntersectionoverUnion)flyfish结构体BBox:定义了一个边界框的数据结构,包含中心坐标、宽高、置信度分数、类别索引和输出索引。函数IOU:计算两个......
  • Summarization with Langchain
    教程链接—https://youtu.be/w6wOhSThnoo摘要是自然语言处理(NLP)的一个关键方面,它能够将大量文本浓缩成简洁的摘要。LangChain,作为NLP领域中的一个强大工具,提供了三种不同的摘要技术:stuff、map_reduce和refine。每种方法都有其独特的优点和局限性,使它们适用于不同的情况。本文深......
  • 谷歌Phone的AI全家桶上线了,给所有安卓手机打了个样
    Google的Pixel9系列正式发布,亮点依然在AI功能!为了让自家的手机能跑起来AI功能,Pixel在硬件方面进行了升级。Google为所有新手机增加了RAM,以满足对设备内存需求高的AI应用。Pixel9配备了12GBRAM,其余型号(Pixel9Pro、Pixel9ProXL、Pixel9ProFold)则拥有16GB内存。Pixe......
  • 「每周只上一天班」谷歌散漫制度遭前CEO怒斥:输给OpenAI,再下去要输创业公司了
    「谷歌决定拥抱生活与工作平衡:更早下班、远程工作,胜过在竞争中取胜。」施密特说道。「而说到初创公司,他们之所以能成功,是因为人们在拼命地工作。」在本周三公布的一份斯坦福大学公开课视频中,谷歌前CEO埃里克・施密特(EricSchmidt)在被问到谷歌为什么落后于OpenAI时,终于开炮......
  • 《给所有人的生成式 AI 课》学习笔记(一)
    前言本文是吴恩达(AndrewNg)的视频课程《GenerativeAIforEveryone》(给所有人的生成式AI课)的学习笔记。由于原课程为全英文视频课程(时长约3个小时),且国内访问较慢,阅读本文可快速学习课程内容。课程介绍本课程帮助大家了解生成式人工智能的工作原理,以及如何在生活和工......