从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作为模型的端点IDmessages = [  # 定义一个消息列表,包含系统消息和用户消息{"role": "system", "content": "你是豆包,是由字节跳动开发的 AI 人工智能助手"},  # 系统消息,定义了AI助手的身份{"role": "user", "content": "常见的十字花科植物有哪些?"},  # 用户消息,提出了一个问题],
)
# 打印出API返回的第一个选择中的消息内容,即AI助手的回答
print(completion.choices[0].message.content)

         输出:

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

结语:

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

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

前端---高效工具(一) : NVM的使用

一、NVM用途 方便快捷 管理和切换各个 node版本。现在前端项目Vue2与Vue3很多项目要求的node版本不一致导致的。 二、安装 如果有安装nodejs,按一下步骤清理环境 1.卸载应用程序的 nodejs 2.删除环境变量中nodejs的配置 3.删除C:\Users\Administrator 中最下面…

反序列化漏洞浅析

Apache InLong 是开源的高性能数据集成框架&#xff0c;支持数据接入、数据同步和数据订阅&#xff0c;同时支持批处理和流处理&#xff0c;方便业务构建基于流式的数据分析、建模和应用。浅析Apache InLong < 1.12.0 JDBC反序列化漏洞&#xff08;CVE-2024-26579&#xff0…

三周精通FastAPI:39 用FastAPI CLI命令行程序管理FastAPI项目

官方文档&#xff1a;https://fastapi.tiangolo.com/zh/fastapi-cli/ FastAPI CLI FastAPI CLI 是一个命令行程序&#xff0c;你可以用它来部署和运行你的 FastAPI 应用程序&#xff0c;管理你的 FastAPI 项目&#xff0c;等等。 当你安装 FastAPI 时&#xff08;例如使用 p…

Bean实例化

Bean有3种实例化方法 1.通过无参构造方法实例化 假如我们有以下结构&#xff1a; 这里我们在无参构造方法种打印字符串&#xff1a; 然后我们运行 可知&#xff0c;IoC管理bean进行实例化的时候是通过无参构造方法实例化的。 2.静态工厂实例化 假设我们有以下配置文件&…

【网络安全】线程安全分析及List遍历

未经许可,不得转载。 文章目录 线程线程安全问题遍历List的方式方式一方式二方式三方式四(Java 8)方式五(Java 8 Lambda)遍历List的同时操作ListVector是线程安全的?使用线程安全的CopyOnWriteArrayList使用线程安全的List.forEach线程 线程是程序执行的最小单位。一个程…

ReactPress 安装指南:从 MySQL 安装到项目启动

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 ReactPress 是一个基于 React 的开源发布平台&#xff0c;适用于搭建博客、网站或内容管理系统&#xff08;CMS&#xff09;。本文将详细介绍如何安装 ReactPress&#xff0c;包括…

caozha-whois(域名Whois查询源码)

caozha-whois&#xff0c;是一个采用原生PHP写的域名Whois查询模块&#xff0c;支持全球大部分域名的whois查询&#xff0c;支持中文域名在内的多种域名后缀&#xff0c;包括&#xff1a;.com&#xff0c;.net&#xff0c;.cn&#xff0c;.com.cn&#xff0c;.org&#xff0c;.…

2024 年(第 7 届)“泰迪杯”数据分析技能赛A 题 自动化生产线数据分析 完整代码结果分享

一、背景 随着信息技术的快速发展&#xff0c;工业自动化领域的智能控制系统日益完善。自动化生产线能够独立完成从物料输送到元件抓取&#xff0c;再到产品安装和质量检验的各个环节&#xff0c;这不仅极大提升了制造效率和产品质量&#xff0c;也有效降低了生产成本。 为了使…

探索Python自动化新境界:Invoke库的神秘面纱

文章目录 **探索Python自动化新境界&#xff1a;Invoke库的神秘面纱**第一部分&#xff1a;背景介绍第二部分&#xff1a;Invoke库是什么&#xff1f;第三部分&#xff1a;如何安装Invoke库&#xff1f;第四部分&#xff1a;Invoke库函数使用方法1. 定义任务2. 执行任务3. 任务…

Qt_day4_Qt_UI设计

目录 Qt_UI设计 1. Designer 设计师&#xff08;掌握&#xff09; 2. Layout 布局&#xff08;重点&#xff09; 2.1 基本使用 2.2 高级用法 2.3 代码布局&#xff08;了解&#xff09; 3. Designer与C的关系&#xff08;熟悉&#xff09; 4. 基本组件&#xff08;掌握…

conda和conda的常用命令

目录 一、什么是conda 1. conda的定义和作用 2. conda的特点 3. conda与pip的区别 二、conda的常用命令 1. 环境管理 2.包管理 3. 查看信息 4. 清理和维护 5. 频道(channel)管理 6. 导出和复制环境 7. 加速相关(镜像) 一、什么是conda 1. conda的定义和作用 2. co…

基于STM32通过TM1637驱动4位数码管详细解析(可直接移植使用)

目录 1. 单位数码管概述 2. 对应编码 2.1 共阳数码管 2.2 共阴数码管 3. TM1637驱动数码管 3.1 工作原理 3.1.1 读键扫数据 3.1.2 显示器寄存器地址和显示模式 3.2 时序 3.2.1 指令数据传输过程&#xff08;读案件数据时序&#xff09; 3.2.2 写SRAM数据…

16.UE5拉怪机制,怪物攻击玩家,伤害源,修复原视频中的BUG

2-18 拉怪机制&#xff0c;怪物攻击玩家、伤害源、黑板_哔哩哔哩_bilibili 目录 1.实行行为树实现拉怪机制 1.1行为树黑板 1.2获取施加伤害对象&#xff08;伤害源&#xff09; 2.修复原视频中&#xff0c;第二次攻击怪物后&#xff0c;怪物卡在原地不动的BUG 3.怪物攻击玩…

【JavaEE初阶 — 多线程】内存可见性问题 volatile

1. 内存可见性问题 内存可见性的概念 什么是内存可见性问题呢&#xff1f; 当一个线程对共享变量进行了修改&#xff0c;那么另外的线程都是立即可以看到修改后的最新值。在Java中&#xff0c;可以借助 synchronized、volatile 以及各种Lock 实现可见性。如果我们将变量声…

3195. 有趣的数-13年12月CCF计算机软件能力认证(组合数)

题目 思路 统计方案的时候先去分类&#xff0c;先放01&#xff0c;然后在考虑23对于第k类&#xff0c; 对于01的选择 对于所有的分类&#xff1a;本题我觉得要考虑的几个点就是&#xff1a;状态分类得到数学公式组合数的计算防越界处理 代码 计算组合数的代码模板&#xff1…

goframe开发一个企业网站 开发环境DOCKER 搭建16

Docker开发环境搭建的优势 环境一致性 消除"在我机器上能运行"的问题保证开发、测试、生产环境的一致性新成员可以快速搭建完整开发环境 快速部署 一键启动所有依赖服务配置文件版本控制环境迁移方便快捷 资源隔离 避免不同项目依赖冲突系统资源可控便于多版本…

C++builder中的人工智能(20):如何在C++中开发一个简单的Hopfield网络

在AI技术的发展历史中&#xff0c;模式识别模型是最伟大的AI技术之一&#xff0c;尤其是从像素图像中读取文本。其中一个是Hopfield网络&#xff08;或称为Ising模型的神经网络或Ising–Lenz–Little模型&#xff09;&#xff0c;这是一种递归神经网络形式&#xff0c;由John J…

【Leetcode 中等】34. 在排序数组中查找元素的第一个和最后一个位置

原题链接 Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 题目 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必…

金融学期末速成笔记

【拯救者】金融学速成&#xff08;基础习题&#xff09; 重点: 市场经济是发达的商品经济。在市场经济条件下&#xff0c;市场机制作为资源配置方式&#xff0c;发挥基础性作用。 除具有商品经济的一般特征外&#xff0c;与商品经济相比&#xff0c;市场经济还具有一些新的特征…

云计算复习文档

云计算复习文档 一 云计算概述 名词&#xff1a; 云计算 1.0 &#xff1a; 面向数据中心管理员的IT基础设施资源虚拟化阶段 通过计算虚拟化技术将企业IT应用与底层的基础设施彻底分离、解耦 将多个企业IT应用实例及运行环境复用在相同的物理服务器上&#xff0c;并通过虚…