【ai】LiveKit Agent 的example及python本地开发模式工程实例

title: ‘LiveKit Agent Playground’

  • playground
  • LiveKit Community

playground的环境变量:LiveKit API

# LiveKit API Configuration
LIVEKIT_API_KEY=YOUR_API_KEY
LIVEKIT_API_SECRET=YOUR_API_SECRET

# Public configuration
NEXT_PUBLIC_LIVEKIT_URL=wss://YOUR_LIVEKIT_URL

# Application Configuration
NEXT_PUBLIC_APP_CONFIG="
title: 'LiveKit Agent Playground'
description: 'LiveKit Agent Playground allows you to test your LiveKit Agent integration by connecting to your LiveKit Cloud or self-hosted instance.'
github_link: 'https://github.com/livekit/agents-playground'
video_fit: 'cover' # 'contain' or 'cover'
settings:
  editable: true # Should the user be able to edit settings in-app
  theme_color: 'cyan'
  chat: true  # Enable or disable chat feature
  outputs:
    audio: true # Enable or disable audio output
    video: true # Enable or disable video output
  inputs:
    mic: true    # Enable or disable microphone input
    camera: true # Enable or disable camera input
    sip: true    # Enable or disable SIP input
"

先下载模型,然后启动agent

  • D:\XTRANS\pythonProject\LIVEKIT\agents\examples\voice-assistant\Dockerfile
    在这里插入图片描述
  • 依赖于agent和多个插件
livekit-agents~=0.7.dev0
livekit-plugins-openai~=0.5.dev0
livekit-plugins-deepgram~=0.5.dev0
livekit-plugins-elevenlabs~=0.5.dev0
livekit-plugins-silero~=0.5.dev0

最简单的simple-color仅用了livekit-agents~=0.7.dev0

在这里插入图片描述

  • 看下需要的库:
    在这里插入图片描述

在这里插入图片描述

  • WorkerOptions 没看到啊:
    在这里插入图片描述

在这里插入图片描述

  • 在woker.py中:
    在这里插入图片描述

在这里插入图片描述

  • 在Python中,使用setuptools.setup的install_requires参数是为了指定项目安装时必须安装的依赖库。这些依赖被自动从Python的包索引库(如PyPI)下载和安装。每个依赖可以指定版本号,以确保与项目的兼容性。

  • 关于install_requires中的版本指定,如livekit~=0.11,这表示安装livekit这个库时,**会自动选择0.11.x系列的最新版本,**其中x是该系列中的任意一个小修复版本号。这样做可以避免引入重大更改,同时保证获得重要的错误修复。

如果你不想使用来自仓库(如PyPI)的livekit库,而是想使用本地的livekit源码

  • 如果你不想使用来自仓库(如PyPI)的livekit库,而是想使用本地的livekit源码,你可以通过以下几种方法实现:

  • 本地安装:如果你有livekit的源码,可以在其源码目录下运行pip install .python setup.py install来安装。这样,livekit将被安装到你的环境中,就像它是从PyPI下载的一样。

  • 开发模式安装:使用pip install -e .(其中.指当前目录,需要在包含setup.py的目录中执行)这种方法会将库安装在“可编辑”模式下,意味着你对本地源码的任何修改都会立即反映在你的Python环境中,不需要重新安装。

  • 直接修改install_requires:你也可以在setup.py的install_requires中直接指定本地路径或通过特定的链接来引用依赖,例如使用本地路径:

install_requires=[
    "click~=8.1.0",
    "livekit @ file:///path/to/your/livekit",
    ...
]
  • 这里的路径需要指向包含setup.py文件本地livekit库的根目录。

  • 选择哪种方法取决于你的具体需求和工作流。如果你正在开发和测试修改后的库,建议使用开发模式安装。如果只是一次性使用或确保环境的一致性,则可以使用本地安装。如果要在多个项目中重用本地库,修改install_requires可能更为方便。

开发模式

  • 假如新建了一个包,咱既要让它工作又要让它方便编辑后的修改立刻生效,这里就需要说道开发者模式,原理大概类似把当前的源码文件夹指向site-pacakges,所以修改能立即被应用。
python setup.py develop

开发者模式安装,当然也可以卸载

python setup.py develop --uninstall

开发完后打包分发

python setup.py sdist

GPT:推荐pip install -e

在这里插入图片描述

myproject/


├── mylibrary/
│ ├── mylibrary/
│ │ ├── init.py
│ │ └── core.py
│ └── setup.py

└── examples/
└── use_mylibrary.py

  • 在这个结构中,mylibrary是你要开发的库,examples文件夹包含一个示例脚本,演示如何使用这个库。

  • 步骤 1: 设置库的setup.py
    在mylibrary/setup.py中,你需要定义库的安装配置,例如:

  • from setuptools import setup, find_packages



setup(
    name="mylibrary",
    version="0.1.0",
    packages=find_packages(),
    install_requires=[
        # 在这里列出需要的依赖库
    ]
)

  • 步骤 2: 安装库为开发模式
    在mylibrary目录下,运行以下命令来安装库为开发模式:
pip install -e .
  • 这样,任何在mylibrary库中做的修改都会立即反映在使用该库的任何Python环境中。

  • 步骤 3: 创建示例脚本
    在examples/use_mylibrary.py中,你可以使用mylibrary中定义的功能,例如:

from mylibrary.core import some_function

def main():
    print(some_function())

if __name__ == "__main__":
    main()

  • 这个脚本调用了mylibrary中的一个函数,并打印其结果。

  • 步骤 4: 运行示例

  • 确保已经按照开发模式安装了mylibrary,然后你可以直接从examples目录运行use_mylibrary.py,看到库函数的效果:

python use_mylibrary.py
  • 这样,你就设置了一个使用本地库源码的开发环境,可以自由地修改库的代码并直接在示例应用中测试更改。

python编码过程中copilot一直提建议

在这里插入图片描述

在这里插入图片描述

开发者模式

在这里插入图片描述
在这里插入图片描述

要再有setup.py的路径下执行

在这里插入图片描述

(.venv) PS D:\XTRANS\pythonProject\myLibrary> cd .\mylibrary\
(.venv) PS D:\XTRANS\pythonProject\myLibrary\mylibrary> pip install -e .
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Obtaining file:///D:/XTRANS/pythonProject/myLibrary/mylibrary
  Preparing metadata (setup.py) ... done
Installing collected packages: mylibrary
  Running setup.py develop for mylibrary
Successfully installed mylibrary-0.1.0

[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: python.exe -m pip install --upgrade pip
(.venv) PS D:\XTRANS\pythonProject\myLibrary\mylibrary> 

没找到

在这里插入图片描述

setup.py 路径不对

在这里插入图片描述

调整

在这里插入图片描述

再次安装

在这里插入图片描述

编译生成

在这里插入图片描述

这次可以了

在这里插入图片描述

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

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

相关文章

pytorch比较操作

文章目录 常用的比较操作1.torch.allclose()2.torch.argsort()3.torch.eq()4.torch.equal()5.torch.greater_equal()6.torch.gt()7.torch.isclose()8.torch.isfinite()9.torch.isif()10.torch.isposinf()11.torch.isneginf()12.torch.isnan()13.torch.kthvalue()14.torch.less_…

【从零开始学习RabbitMQ | 第二篇】如何确保MQ的可靠性和消费者可靠性

目录 前言: MQ可靠性: 数据持久化: Lazy Queue: 消费者可靠性: 消费者确认机制: 消费失败处理: MQ保证幂等性: 方法一: 总结: 前言: …

以梦为马,不负韶华(3)-AGI在企业服务的应用

AGI在企业服务中,各应⽤已覆盖企业全流程,包含⼈⼒、法务、财税、流程⾃动化、知识管理和软件开发各领域。 由于⼤语⾔模型对⽂本处理类场景有着天然且直接的适配性,⽂本总结、⽂本内容⽣成、服务指引等发展起步早且应⽤成熟度更⾼。 在数据…

Captura完全免费的电脑录屏软件

一、简介 1、Captura 是一款免费开源的电脑录屏软件,允许用户捕捉电脑屏幕上的任意区域、窗口、甚至是全屏画面,并将这些画面录制为视频文件。这款软件具有多种功能,例如可以设置是否显示鼠标、记录鼠标点击、键盘按键、计时器以及声音等。此…

LeetCode题练习与总结:有序链表转换二叉搜索树--109

一、题目描述 给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为平衡二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0,-3,9,-10,null,5],它表…

医疗图像处理2023:Transformers in medical imaging: A survey

医学成像中的transformer:综述 目录 一、介绍 贡献与安排 二、CNN和Transformer 1.CNN 2.ViT 三、Transformer应用于各个领域 1.图像分割 1)器官特异性 ①2D ②3D 2)多器官类别 ①纯transformer ②混合架构 单尺度 多尺度 3)…

Kubernetes——监听机制与调度约束

目录 前言 一、监听机制 1.Pod启动创建过程 2.调度过程 1.指定调度节点 1.1强制匹配 1.2强制约束 二、硬策略和软策略 1.键值运算关系 1.硬策略——requiredDuringSchedulingIgnoredDuringExecution 2.软策略——preferredDuringSchedulingIgnoredDuringExecution …

Varjo XR-4功能详解:由凝视驱动的XR自动对焦相机系统

Varjo是XR市场中拥有领先技术的虚拟现实设备供应商,其将可变焦距摄像机直通系统带入到虚拟和混合现实场景中。在本篇文章中,Varjo的技术工程师维尔蒂莫宁详细介绍了这项在Varjo XR-4焦点版中投入应用的技术。 对可变焦距光学系统的需求 目前所有其他XR头…

基于STM32实现智能饮水机控制系统

目录 引言环境准备智能饮水机控制系统基础代码示例:实现智能饮水机控制系统 温度传感器数据读取水泵和加热器控制水位传感器数据读取用户界面与显示应用场景:家庭和办公室的智能饮水管理问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在S…

自适应感兴趣区域的级联多尺度残差注意力CNN用于自动脑肿瘤分割| 文献速递-深度学习肿瘤自动分割

Title 题目 Cascade multiscale residual attention CNNs with adaptive ROI for automatic brain tumor segmentation 自适应感兴趣区域的级联多尺度残差注意力CNN用于自动脑肿瘤分割 01 文献速递介绍 脑肿瘤是大脑细胞异常和不受控制的增长,被认为是神经系统…

第二证券炒股知识:股票破发后怎么办?

当一只新股的价格跌破其发行价时,往往会受到商场出资者的关注。关于股票破发后怎么办,第二证券下面就为我们具体介绍一下。 股票破发是指股票的商场价格低于其发行价格或最近一次增发价格,股票破发往往是由于多种要素共同作用的结果&#xf…

强化学习——学习笔记2

在上一篇文章中对强化学习进行了基本的概述,在此篇文章中将继续深入强化学习的相关知识。 一、什么是DP、MC、TD? 动态规划法(DP):动态规划法离不开一个关键词,拆分 ,就是把求解的问题分解成若…

亡羊补牢,一文讲清各种场景下GIT如何回退

系列文章目录 手把手教你安装Git,萌新迈向专业的必备一步 GIT命令只会抄却不理解?看完原理才能事半功倍! 常用GIT命令详解,手把手让你登堂入室 GIT实战篇,教你如何使用GIT可视化工具 GIT使用需知,哪些操作…

Meta 推出新型多模态 AI 模型“变色龙”(Chameleon),挑战 GPT-4o,引领多模态革命

在人工智能领域,Meta 近日发布了一款名为“变色龙”(Chameleon)的新型多模态 AI 模型,旨在挑战 OpenAI 的 GPT-4o,并刷新了当前的技术标准(SOTA)。这款拥有 34B 参数的模型通过 10 万亿 token 的…

2-EMMC启动及各分区文件生成过程

EMMC的使用比nand flash还是复杂一些,有其特有的分区和电器性能 1、启动过程介绍 跟普通nand或spi flash不同,uboot前面还有好几级 在vendor某些厂商的设计中,ATF并不是BOOTROM加载后的第一个启动镜像,可能是这样的: …

微信小程序多端应用Donut Android生成签名

一、生成签名的作用 确保应用的完整性:签名可以确保应用在发布后没有被修改。如果应用被修改,签名就会改变,Android系统就会拒绝安装。确定应用的唯一身份:签名是应用的唯一标识,Android系统通过签名来区分不同的应用…

【Postman接口测试】第二节.Postman界面功能介绍(上)

文章目录 前言一、Postman前言介绍二、Postman界面导航说明三、使用Postman发送第一个请求四、Postman 基础功能介绍 4.1 常见类型的接口请求 4.1.1 查询参数的接口请求 4.1.2 表单类型的接口请求 4.1.3 上传文件的表单请求 4.1.4 JSON 类…

Linux软硬链接详解

软链接: ln -s file1 file2//file1为目标文件,file2为软链接文件 演示: 从上图可以得出: 软链接本质不是同一个文件,因为inode不同。 作用: 软连接就像是Windows里的快捷方式,里面存放的是目标…

动手学操作系统(三、通过IO接口直接控制显卡)

动手学操作系统(三、通过IO接口直接控制显卡) 在之前的学习内容中,我们成功编写了MBR主引导记录,在终端上进行了打印显示,在这一节我们使用MBR通过IO接口来直接控制显卡输出字符。 文章目录 动手学操作系统&#xff0…

5.28_Java语法_运算符,接收键盘数据

1、运算符 具体应用同我C语言操作符详解博客相同,另有补充会直接写 1.1、基本的算术运算符、符号做连接符 CSDN 具体应用同我C语言操作符详解博客相同 符号做连接符: ""符号与字符串运算连用的时候是用作连接符的,其结果依然是一个字符串…