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

news2024/12/24 8:34:42

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 路径不对

在这里插入图片描述

调整

在这里插入图片描述

再次安装

在这里插入图片描述

编译生成

在这里插入图片描述

这次可以了

在这里插入图片描述

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

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

相关文章

计算机网络基础 - 计算机网络和因特网(1)

计算机网络基础 计算机网络和因特网什么是 Internet?具体构造的的角度服务角度网络结构 网络边缘网络核心电路交换分组交换概述排队时延和分组丢失转发表和路由选择协议按照有无网络层的连接 分组交换 VS 电路交换 接入网DSL 因特网接入电缆因特网接入光纤到户 FTTH无线接入网…

十五、Python模块 1、(入门一定看!!!)「长期更新Python简单入门到适用」

首先什么是模块? 小伙伴们经常看我写的教程不难发现,前面我们用过几次模块就是sys的那个,其实python不仅标准库中包含了大量的模块(也被称之为准模块),还有大量的第三方模块,开发者也可以自己发…

图卷积神经网络的简史 及其与卷积神经网络的异同

图卷积神经网络(GCN)已经在处理图结构数据方面取得了巨大的成功。在本小节中,我们将深入探讨图卷积神经网络的起源、发展历程,并提供一个简单的Python代码实现示例,以帮助读者更好地理解这一概念。 图卷积神经网络的简…

Echarts图表库推荐以及使用Echarts实现饼图端头弧形效果

推荐Echarts图表库官方链接http://www.ppchart.com/#/ 下面是一段实现饼图端头弧形效果的Echarts代码 下面代码可以直接新建html文件运行看效果也可以看我下面贴的效果图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

【深度学习实战—8】:基于MediaPipe的人脸检测

✨博客主页&#xff1a;王乐予&#x1f388; ✨年轻人要&#xff1a;Living for the moment&#xff08;活在当下&#xff09;&#xff01;&#x1f4aa; &#x1f3c6;推荐专栏&#xff1a;【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 &#x1f63a;一、Med…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(八)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 继续接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 现在&#xff0c;我们…

如何实现虚拟列表?定高和不定高两种场景

之前我写了一篇文章&#xff1a;如何使用 IntersectionObserver API 来实现数据的懒加载 在文章的最后&#xff0c;我们提到如果加载的列表数据越来越多&#xff0c;我们不可能把所有的数据都渲染出来&#xff0c;因为这样会导致页面卡住甚至崩溃。 为了优化这种长列表场景&am…

英伟达SSD视觉算法,jetson.inference在jetson nano中部署

一、用官方镜像刷机 安装SD卡擦除工具SD Card Formatter https://www.sdcardformatter.com/download/ 格式化SD卡 下载官方镜像 https://developer.nvidia.com/jetson-nano-sd-card-image 安装刷机工具balenaEtcher https://www.balena.io/etcher 将上面下载的镜像压缩包解…

[leetcode hot 150]第五十六题,合并区间

题目&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 思路&#xff1a; 这道题目要求合并一…

若依跳转(新增)页面,在菜单中不显示的页面

在router.js文件中 跳转方式 this.$router.push(/monitor/b/b)

Java面试八股之++操作符是线程安全的吗

操作符是线程安全的吗 操作符本身在Java中并不是线程安全的。这个操作实际上包含三个步骤&#xff1a;读取变量的值、将值加1、然后将新值写回内存。在多线程环境下&#xff0c;如果多个线程同时对同一个变量执行操作&#xff0c;就可能出现竞态条件&#xff08;race conditio…

数据结构(七)递归、快速排序

文章目录 一、递归&#xff08;一&#xff09;使用递归实现1~n求和1. 代码实现&#xff1a;2. 调用过程&#xff1a;3. 输出结果&#xff1a; &#xff08;二&#xff09;青蛙跳台阶问题1. 问题分析2. 代码实现3. 输出结果4. 代码效率优化5. 优化后的输出结果 二、快速排序&…

STM32系列-STM32介绍

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” STM32介绍 STM32介绍 ST&#xff1a;指的是意法半导体 M&#xff1a;指定微处理器 32&#xff1a;表示计算机处理器位数 ARM分成三个系列&#xff1a; Cortex-A&#xff1…

PostgreSQL数据库提权

前面讲述了mysql、SqlServer、Redis数据库相关的提权方式&#xff0c;有兴趣的也可以去看看。 这里讲的postgreSQL数据库提权就是任意命令执行漏洞(CVE-2019-9193)。 目录 数据库简介 漏洞原理 影响版本 漏洞利用 利用前提 漏洞复现 复现准备 复现过程 漏洞修复 数据…

基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善

前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面管理员录入和编辑功能完善-CSDN博客 本篇将完善主界面的管理员入库和出库功能&#xff0c;同样的&#xff0c;管理员入库和出库的设计套路适用于动态表的录入和编辑 首先还是介绍一下本项目将要实现的功能 &#xf…

【aI】LiveKit Agents Playground

demo 是跑在 playground中的。 语音助手demo 可以语音对话 概念 Concepts Agent: A function that defines the workflow of a programmable, server-side participant. This is your application code. Worker: A container process responsible for managing job queuing …

业内宝刊!影响因子3连涨,OA可选,Elsevier旗下这本SSCI解救你的选刊纠结症

【SciencePub学术】今天小编给大家带来了一本经济类的高分优刊解读&#xff0c;隶属于Elsevier出版社&#xff0c;JCR1区&#xff0c;中科院2区&#xff0c;影响因子高达4.8&#xff0c;且实时影响因子还在持续上涨中&#xff0c;领域相符的学者可着重考虑&#xff01; Emergin…

使用 Flask 实现异步请求处理

文章目录 为什么需要异步请求处理&#xff1f;在 Flask 中实现异步请求处理使用 Flask-Cors 扩展 总结 在开发 Web 应用程序时&#xff0c;异步请求处理是提高性能和并发能力的重要方法之一。Flask 是一个轻量级的 Web 框架&#xff0c;它提供了易于使用的工具来实现异步请求处…

【CCF-CSP】202309-1 202309-2 坐标变换

坐标变换&#xff08;其一&#xff09; 代码&#xff1a; #include <bits/stdc.h> using namespace std; int main(){int n,m,x,y,sumx0,sumy0;cin>>n>>m;for(int i1;i<n;i){cin>>x>>y;sumxx,sumyy;}for(int i1;i<m;i){cin>>x>&…

深入解析三层架构:构建稳定高效的软件系统

概述 顾名思义&#xff0c;三层架构分为三层&#xff0c;分别是“数据访问层”、“业务逻辑层”、“表示层”。 数据访问层&#xff1a;数据访问层在作业过程中访问数据系统中的文件&#xff0c; 实现对数据库中数据的读取保存操作。 表示层&#xff1a;主要功能是 显示数据和…