从0到1基于LangChain制作一个AI猫娘

前言:

        看到B站上的AI+Vtuber的项目落地了,就心血来潮想制作一个AI的猫娘供自己使用,顺便出一个简单的教程,跳过理论,直接实践,作者也还在学习摸索中,所以有错误可以直接在评论区指正。(基于windows平台)

第一步 下载anaconda和pycharm:

        著名的包管理器,这里就不再赘述如何安装,可以直接在CSDN上搜索安装教程。

第二步 打开pycharm并新建项目:

        新建一个项目,注意使用conda环境,版本最好选择python3.9。

        注意:文件名称不要取langchain,会出问题。

        他会自动创建环境,并下载好python3.9,在pycharm底部的终端,输入

conda install conda-forge::langchain
conda install conda-forge::langchain-openai
conda install conda-forge::langchain-community

来下载langchain及其依赖项。

第三步 前往网站注册申请API: 

        本文使用火山方舟的引擎(毕竟有免费额度)打开官网

         在API Key管理中创建自己的API,注意不要轻易泄露给他人。

        在在线推理里创建接入点,我用的是默认的模型来着,之后点击右边三个点进入API调用。

        选择通过API Key授权,选用第三方SDK,然后使用pip安装openai。

pip install --upgrade openai>=1.0

         回到pycharm,在顶部运行选项中选择编辑配置

        点击右边红框,再在弹出的窗口中添加名称“OPENAI_API_KEY”然后再复制你的API到变量里,以及其他两项,如下图:

 其中URL和MODEL来自火山给的测试中的这两行。

        可以用下面代码测试(AI的注释,凑合看吧):

import os  # 导入os模块,用于访问操作系统依赖的功能,如环境变量
from openai import OpenAI  # 从openai包中导入OpenAI类,用于创建API客户端

# 创建OpenAI客户端实例,使用环境变量中的API密钥和基础URL
client = OpenAI(
    api_key = os.environ.get("ARK_API_KEY"),  # 从环境变量中获取ARK_API_KEY作为API密钥
    base_url = os.environ.get("OPENAI_BASE_URL"),  # 从环境变量中获取OPENAI_BASE_URL作为API的基础URL
)

# 非流式请求:创建一个chat.completions请求,用于生成聊天回复
print("----- standard request -----")
completion = client.chat.completions.create(
    model = os.environ.get("LLM_MODELEND"),  # 从环境变量中获取LLM_MODELEND作为模型的端点ID
    messages = [  # 定义一个消息列表,包含系统消息和用户消息
        {"role": "system", "content": "你是豆包,是由字节跳动开发的 AI 人工智能助手"},  # 系统消息,定义了AI助手的身份
        {"role": "user", "content": "常见的十字花科植物有哪些?"},  # 用户消息,提出了一个问题
    ],
)
# 打印出API返回的第一个选择中的消息内容,即AI助手的回答
print(completion.choices[0].message.content)

         输出:

         如果到这里都成功了,那就成功调用了一个AI!

结语:

        第一次写教程,有点粗糙,有什么问题可以直接在评论区指正。关于这个项目?随缘更新,或许得等我学更多的知识,才能继续推进,或许后面做完了可以找个做前端或者软件的帮我搞个APP?都说不定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【R78/G15 开发板测评】串口打印 DHT11 温湿度传感器、DS18B20 温度传感器数据,LabVIEW 上位机绘制演化曲线

【R78/G15 开发板测评】串口打印 DHT11 温湿度传感器、DS18B20 温度传感器数据,LabVIEW 上位机绘制演化曲线 主要介绍了 R78/G15 开发板基于 Arduino IDE 环境串口打印温湿度传感器 DHT11 和温度传感器 DS18B20 传感器的数据,并通过LabVIEW上位机绘制演…

【CAE SDK】CEETRON 28年应用案例——以船舶、结构仿真、材料成型领域为例

随着计算机辅助工程(CAE)技术的不断发展,虚拟仿真工具在工程设计、分析和优化中发挥着越来越重要的作用。CAE系统涵盖了前处理、求解、后处理等多个环节,极大地提升了工程仿真的准确性和效率。 CEETRON SDK作为虚拟仿真领域的一款…

ThingsBoard规则链节点:RPC Call Reply节点详解

引言 1. RPC Call Reply 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 设备控制 3.2 状态查询 3.3 命令执行 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台,提供了设备管理…

基于深度学习的路面裂缝检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频&#xff09…

“心玲守护”乡村孩子的一片天公益活动在10所学校开展

2023年9月—2024年10月期间,由林志玲女士发起、中国乡村发展基金会支持,并联合重庆市渝中区红樱桃义工协会执行的“心玲守护”乡村孩子的一片天——儿童青少年心理健康援助项目活动,已在重庆市万州区、璧山区、巫山县和湖南省益阳市区域内的1…

计算机网络——1.1计算机网络概述

计算机网络——计算机网络概念 前言 计算机网络是计算机学习中必不可少的一环,甚至可以说,是离我们普通人日常生活最近的计算机知识。为什么呢?因为我们上网上网,都离不开计算机网络,打游戏,刷剧&#xff…

使用HtmlAgilityPack+PuppeteerSharp+iText7抓取IdentityServer4帮助文档

需要学习IdentityServer4的用法,但是在IdentityServer4帮助文档网站(参考文献1)中没有找到下载离线文档的地方,准备使用HtmlAgilityPackPuppeteerSharpiText7将网站内容抓取生成离线PDF文档,便于本机学习、查看。   …

热烈庆祝,2024年11月9日(星期六)骑行马刺沟顺利结束

晨光微露:蓄势待发清晨的第一缕阳光穿透薄雾,照亮了集合现场。我们校长群的骑行爱好者们早早地聚集在约定地点,检查装备、调整车辆,彼此间寒暄着,兴奋之情溢于言表。随着一声令下,队伍正式出发,…

python数据分析|二 IPython和JupyterNotebooks

一 python 解释器 Python解释器同一时间只能运行一个程序的一条语句。 如何适用: win r cmd 要退出Python解释器返回终端,可以输入 exit() 或 Ctrl-D。 假设创建了一个 hello_world.py 文件,它的内容是: 可以用下面的命令运…

【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第2章、《模式一:问候模式》

智能聊天机器人——“有问必答” 【注】该项目已开源,开源地址为:链接,代码更新可能不及时。 第2章、《模式一:问候模式》 主窗体的布局如下图所示: 共九种功能模式,最下方为关闭窗口按钮。 点击问候模…

@RestController 源码解读:解决 Web 开发中 REST 服务的疑难杂症

目录 一、RestContrller注解 1.1 查看底层源码 1.2 AliasFor注解说明 1.2.1 注解别名 1.2.2 元数据别名 1.3 value() 方法的作用 一、RestContrller注解 1.1 查看底层源码 首先编写如下内容: RestController public class TestController {} 按住 Ctrl &am…

【Android】轮播图——Banner

引言 Banner轮播图是一种在网页和移动应用界面设计中常见的元素,主要用于在一个固定的区域内自动或手动切换一系列图片,以展示不同的内容或信息。这个控件在软件当中经常看到,商品促销、热门歌单、头像新闻等等。它不同于ViewPgaer在于无需手…

游戏引擎学习第一天

视频参考: https://www.bilibili.com/video/BV1zGDCYHErA/ 创建一个保存项目的路径 VS的安装略过,个人自行百度 1. vs 创建第一个CMAKE的窗口项目 game.cpp 修改如下的代码 到https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-winmain 去…

ArcGIS软件之“计算面积几何”地图制作

目录 一、消防站的泰森多边形ex12二、人口调查的泰森多边形三、人口调查的泰森多边形属性设置四、计算面积几何,用于求密度五、求密度六、给“现有中学”属性 R1赋值七、“现有中学”设置多环缓存区 并为它赋值八、“土地使用”为不同的功能区赋值九、三个图层相交十…

Rust @绑定(Rust@绑定)(在模式匹配的同时将值绑定到变量)

文章目录 Rust中的绑定基础概念示例:基本模式匹配 绑定的使用示例:范围匹配并绑定变量 深入探索绑定的好处示例:复杂数据结构中的应用 总结 附加 Rust中的绑定 Rust 语言以其强类型系统和内存安全的特性著称。在进行模式匹配时,R…

使用EasyExcel实现导出excel文件时生成多级下拉选

前言 公司有个需求本来只涉及到两个下拉选项&#xff0c;后面就想能不能实现多个下拉选&#xff0c;当然我这里说的多个下拉选是联动的&#xff0c;比如省、地市、区县这种。 实现步骤 1、添加EasyExcel的Maven依赖 <dependency><groupId>com.alibaba</group…

海量小文件挑战下的CephFS:优化策略与实践探索

文章目录 1.背景2.基本概念2.1 CephFS IO流程2.2 Ceph-FUSE 3. 问题3.1 问题源起3.2 理论分析3.3 原因排查3.3.1 Ceph-FUSE日志分析3.3.2 提出猜想3.3.3 代码验证3.3.3.1 MDS端3.3.3.2 Ceph-FUSE端 3.4 小结 1.背景 随着大数据、人工智能技术的蓬勃发展&#xff0c;人类对于算…

编写一个脚本实现参数的远程主机网络探测python test_ip.py 192.168.0.10~192.168.0.100(sys模块)

""" 编写一个脚本实现参数的远程主机网络探测python test_ip.py 192.168.0.10~192.168.0.100 """ #导入模块 #读取起始IP&#xff0c;结束IP import sys start_ip sys.argv[1] end_ip sys.argv[2] # print(start_ip,end_ip)##########组装数据…

lvgl: 示例入门

目录 1. A very simple hello world label 2. A button with a label and react on click event 3. Create styles from scratch for buttons 4. Create a slider and write its value on a label 1. A very simple hello world label void _lv_example_get_started_1(void) …

Redis2:Redis数据结构介绍、通用命令、String类型、Key的层级格式

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…