Welcome to TFRobotV2¶
TFRobot是什么?¶
TFRobot是一个基于LLM的Agent开发框架。它可以帮助开发者快速的开发出一个基于LLM的Agent,并且可以在不同的场景下进行调试与部署。
- TFRobot调用链全面接入OpenTelemetry,可以方便的接入各种监控系统,同时追踪Agent完整的调用链。
- TFRobot提供了Drive/Brain/Memory/Chain/LLM/Prompt等独立模块封装,易于调试与替换。
- 针对不同的场景,TFRobot提供了比如Faiss,Chroma等不同模块的适配,方便开发者快速的进行开发。
- 插件化的设计,方便开发者进行二次开发与扩展。
随着大语言模型(LLM)能力的不断提升,可以看到越来越多的基于LLM的应用被开发出来,其中最为典型的就是对话系统(比如ChatGPT)与代码补全系统(比如Github Copilot)。 几乎各个LLM厂商均会标配一个ChatXXX的产品。
但随着应用场景的不断深入与具象化,Chat的产品形式逐渐显得单薄,Copilot类型的产品也不能解决全部问题。市场亟待一些新的产品形态来辅助人们提升生产力。
比如:
- 在内容创作与编辑领域,大模型如何助力小说创作,文章选题,文案撰写等?
- 在工程开发角度,大模型如何助力测试用例开发,代码审查,文档编写?
- 在行解领域,大模型如何助力整合资料与方案,如何辅助规划大纲并完成细节?
在如上领域,其实已经有了非常多的成功的产品,除了Github Copilot之外,微软的Office Copilot等等也在不断的发展中。
但这些商业化的产品往往只是解决了一部分问题,而且往往是封闭的,不具备可扩展性。同时它们比较难接入目前团队的工作流程与业务数据。
- 它们的产品形态往往是固化的,不可定制。
- 它们的数据往往是封闭的,不可扩展。即使可扩展,受限于商业利益,团队数据也不能随意开放给这些大型商业公司。
TFRobot架构简介¶

如何使用¶
目前TFRobotV2版本尚未开源,仅在公司内部部署使用,可用的Release版本对应的Python包名为tfrobot,存储在公司内部的PyPI仓库中。
使用方式请按以下步骤进行:
1. 配置当前的Poetry或者其它包管理环境,添加公司私有PyPi源信息。¶
私有源信息参考:TuringFocus私有PyPi源 私有源配置教程:Poetry私有PyPi源配置
2. 在项目中添加依赖,参考配置如下:¶
tfrobot = {extras = ["all"], version = "0.1.7rc0"}
3. 因为引用了Unstructured-IO的相关能力,对于本地环境有些依赖需要确认安装¶
参考Unstructured-IO官方文档进行环境确认:Unstructured
TFRobotV2提供了一个简单的脚本可以尝试运行进行安装,但安装过程中可能会出现一些报错,需要自行解决,因为编译类的问题不同平台问题不一,不太方便统一解答,但依赖都是一些大的开源库,互联网上有足够的信息可以解决。
#!/bin/bash
# 停止脚本在遇到错误时继续运行
set -e
# 打印正在执行的命令
set -x
# 检测操作系统类型
OS="$(uname -s)"
case "${OS}" in
Linux*)
# 检测Linux发行版
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID}" in
ubuntu|debian)
pkg_manager="sudo apt-get"
packages="libmagic-dev poppler-utils tesseract-ocr libreoffice pandoc"
;;
centos|fedora|rhel)
pkg_manager="sudo yum"
packages="poppler-utils tesseract libreoffice pandoc"
# CentOS/RHEL/Fedora可能需要额外的配置来安装libmagic和libmagic-devel
;;
*)
echo "Unsupported Linux distribution: ${ID}" && exit 1
;;
esac
else
echo "Cannot determine Linux distribution" && exit 1
fi
;;
Darwin*)
# 检查是否安装了Homebrew
if ! command -v brew >/dev/null 2>&1; then
echo "Homebrew is not installed. Please install Homebrew first." && exit 1
fi
pkg_manager="brew"
packages="libmagic poppler tesseract ocrmypdf libreoffice pandoc"
;;
*)
echo "Unsupported OS: ${OS}" && exit 1
;;
esac
# 安装必要的库
${pkg_manager} update
case "${OS}" in
Linux*)
# Linux系统安装包
${pkg_manager} install -y ${packages}
;;
Darwin*)
# macOS系统安装包
for package in ${packages}; do
${pkg_manager} install ${package}
done
;;
*)
echo "Unsupported OS: ${OS}" && exit 1
;;
esac
4. 下载常用模型¶
对于SpaCy与NLTK,会有基础模型需要下载,可以参考如下脚本将模型下载至本地。
"""
此文件用于poetry 初始化项目时动态安装完整依赖
"""
def download_spacy_model(model_name):
import spacy.cli
spacy.cli.download(model_name)
def download_nltk_data(data_package):
import nltk
nltk.download(data_package)
def main():
download_spacy_model("en_core_web_sm")
download_nltk_data("punkt")
if __name__ == "__main__":
main()