# neuroflow
**Repository Path**: Eternal_CC/neuroflow
## Basic Information
- **Project Name**: neuroflow
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-06-21
- **Last Updated**: 2025-06-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# NeuroFlow 框架文档
## 概述
NeuroFlow 是一个为 Java 开发者设计的现代化 AI 开发框架,集成了大型语言模型(LLM)能力和自定义 AI 函数,简化了 AI 应用的开发流程。它提供了:
- **统一 AI 网关**:集成多种 AI 模型(OpenAI, Qwen, Ollama 等)
- **函数编排引擎**:通过注解注册 AI 函数
- **工作流系统**:可视化编排复杂 AI 任务
- **企业级特性**:可观测性、安全合规、性能优化
## 核心特性
1. **多模型支持**:统一接入 OpenAI, Qwen, Ollama 等模型
2. **函数即服务**:通过注解注册 Java 方法为 AI 可调用函数
3. **工作流引擎**:可视化或代码方式编排复杂 AI 任务
4. **性能优化**:自适应 Token 管理、多模型熔断
5. **企业级扩展**:安全过滤、内容审计、混合部署
## 快速开始
### 添加依赖
```xml
io.neuroflow
neuroflow-spring-boot-starter
1.0.0
```
### 基础配置 (application.yml)
```yaml
neuroflow:
gateway:
models:
openai:
api-key: ${OPENAI_API_KEY}
qwen:
api-key: ${QWEN_API_KEY}
model-priority:
- openai
- qwen
agent:
enabled: true
```
### 启用框架
```java
@SpringBootApplication
@EnableNeuroFlow
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
## 开发示例
### 定义 AI 函数
```java
@Service
public class WeatherService {
@AIFunction(name = "get_weather",
description = "获取城市天气信息",
timeout = 3000)
public WeatherData getWeather(
@Param(name = "city", description = "城市名称") String city,
@DefaultValue("metric") @Param(name = "unit", description = "温度单位") String unit) {
// 调用真实天气 API
return weatherAPI.fetch(city, unit);
}
}
```
### 创建工作流
```java
@Configuration
public class WorkflowConfig {
@Bean
public Workflow weatherWorkflow(NeuroFlowGateway gateway, FunctionRegistry registry) {
return DSL.workflow("weather-report", gateway)
.llmStep("extract_city", "从文本提取城市: {{input}}", "gpt-3.5-turbo")
.functionStep("fetch_weather", "get_weather", registry)
.llmStep("generate_response", "生成天气报告: {{fetch_weather.output}}", "gpt-4")
.build();
}
}
```
### 调用工作流
```java
@RestController
@RequestMapping("/weather")
public class WeatherController {
@Autowired
private AgentOrchestrator orchestrator;
@PostMapping
public Mono getWeatherReport(@RequestBody String userQuery) {
return orchestrator.execute("weather-report", Map.of("input", userQuery));
}
}
```
## 最佳实践
### 1. 高效提示工程
```java
// 使用模板变量提高可维护性
String prompt = """
你是一个专业的天气助手,请根据以下数据生成报告:
城市: {{city}}
温度: {{temp}}°C
条件: {{condition}}
要求:
1. 使用友好的语气
2. 包含穿衣建议
3. 不超过100字
""";
// 在步骤中解析模板
new LLMCallStep("weather_report", prompt, "gpt-4", gateway);
```
### 2. 复杂工作流编排
```java
// 带条件分支的工作流
Predicate