React Native AI 项目介绍
React Native AI 是一个用于构建跨平台移动 AI 应用程序的完整框架,旨在支持实时及流媒体文本和聊天用户界面、图像服务以及多种模型的自然语言到图像的转换和图像处理。
项目特点
- **LLM 支持多种平台:**包括 OpenAI 的 ChatGPT、Anthropic 的 Claude、Cohere 及其 Web 服务、Google 的 Gemini,以及 Mistral。
- **丰富的图像模型库:**由 Fal.ai 提供支持,允许用户通过多种方式进行图像处理。
- **实时/流媒体响应:**所有提供商均支持实时和流媒体响应。
- **OpenAI 助手:**包括代码解释器和检索功能,提升用户交互和数据处理能力。
- **服务器代理:**便于与用户选择的身份验证提供商进行认证和授权。
- **主题配置:**默认提供五个主题,通过少量代码即可轻松添加额外主题。
- **图像处理:**通过 ByteScale 实现高级图像处理功能。
项目使用
生成新项目
要生成一个新项目,可以运行以下命令:
npx rn-ai
接下来,可以通过命令行界面(CLI)立即配置环境变量,或者稍后再进行此操作。
运行应用程序
进入应用程序目录并运行以下命令:
npm start
运行服务器
进入服务器目录并运行以下命令:
npm run dev
主题配置
要添加新主题,打开 app/src/theme.ts
文件,按以下配置添加新主题:
const christmas = {
// 可以从现有主题扩展或从头开始
...lightTheme,
name: 'Christmas',
label: 'christmas',
tintColor: '#ff0000',
textColor: '#378b29',
tabBarActiveTintColor: '#378b29',
tabBarInactiveTintColor: '#ff0000',
placeholderTextColor: '#378b29',
}
在文件底部,导出新主题:
export {
lightTheme, darkTheme, hackerNews, miami, vercel, christmas
}
配置 LLM 模型
要添加或移除 LLM 模型,在应用中可以通过更新 constants.ts
文件中的 MODELS
来实现。
移除模型
若想移除某个模型,只需将不想支持的模型从数组中删除即可。
添加新模型
添加新模型后,需在 src/screens/chat.tsx
文件中进行配置,以支持该新模型:
- 创建局部状态以保存新模型数据。
- 更新
chat()
函数以处理新模型类型。 - 创建
generateModelReponse
函数以调用新模型。 - 更新
utils.ts
中的getChatType
,以配置与服务器路径对应的 LLM 类型。 - 在 UI 中渲染新模型。
配置图像模型
要添加或移除图像模型,在应用程序中可以通过更新 constants.ts
文件中的 IMAGE_MODELS
来实现。
移除模型
若想移除某个模型,只需将不想支持的模型从数组中删除即可。
添加新模型
添加新模型后,需在 src/screens/images.tsx
文件中进行配置,以支持该新模型。主要考虑输入类型,模型需要接受文本、图像或者两者兼有。
在服务器端,针对不同 API 提供商进行具体配置,例如 Fal.ai 的配置中,更新 server/src/images/fal
中的处理函数,考虑新模型的需求。对于其他 API 提供商,创建新文件并更新处理函数,最后在 imagesRouter
中添加新路由。