mirror of
https://git.mirrors.martin98.com/https://github.com/bytedance/deer-flow
synced 2025-08-19 01:05:51 +08:00
Merge branch 'bytedance:main' into main
This commit is contained in:
commit
d302ae578d
@ -12,3 +12,6 @@ VOLCENGINE_TTS_APPID=xxx
|
||||
VOLCENGINE_TTS_ACCESS_TOKEN=xxx
|
||||
# VOLCENGINE_TTS_CLUSTER=volcano_tts # Optional, default is volcano_tts
|
||||
# VOLCENGINE_TTS_VOICE_TYPE=BV700_V2_streaming # Optional, default is BV700_V2_streaming
|
||||
|
||||
# [!NOTE]
|
||||
# For model settings and other configurations, please refer to `docs/configuration_guide.md`
|
||||
|
@ -92,7 +92,7 @@ brew install marp-cli
|
||||
Optionally, install web UI dependencies via [pnpm](https://pnpm.io/installation):
|
||||
|
||||
```bash
|
||||
cd web
|
||||
cd deer-flow/web
|
||||
pnpm install
|
||||
```
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
# [!NOTE]
|
||||
# Read the `docs/configuration_guide.md` carefully, and update the configurations to match your specific settings and requirements.
|
||||
# - Replace `api_key` with your own credentials
|
||||
# - Replace `base_url` and `model` name if you want to use a custom model
|
||||
|
@ -1,5 +1,14 @@
|
||||
# Configuration Guide
|
||||
|
||||
## Quick Settings
|
||||
|
||||
Copy the `conf.yaml.example` file to `conf.yaml` and modify the configurations to match your specific settings and requirements.
|
||||
|
||||
```bash
|
||||
cd deer-flow
|
||||
cp conf.yaml.example conf.yaml
|
||||
```
|
||||
|
||||
## Which models does DeerFlow support?
|
||||
|
||||
In DeerFlow, currently we only support non-reasoning models, which means models like OpenAI's o1/o3 or DeepSeek's R1 are not supported yet, but we will add support for them in the future.
|
||||
|
@ -18,11 +18,11 @@
|
||||
|
||||
## APIs
|
||||
|
||||
### Get Information of MCP Server
|
||||
### Get metadata of MCP Server
|
||||
|
||||
**POST /api/mcp/server/metadata**
|
||||
|
||||
For stdio type:
|
||||
For `stdio` type:
|
||||
```json
|
||||
{
|
||||
"transport": "stdio",
|
||||
@ -32,7 +32,7 @@ For stdio type:
|
||||
}
|
||||
```
|
||||
|
||||
For SSE type:
|
||||
For `sse` type:
|
||||
```json
|
||||
{
|
||||
"transport": "sse",
|
||||
|
@ -1,68 +0,0 @@
|
||||
# SSE Integration Test
|
||||
|
||||
## Auto Accepted Case
|
||||
```
|
||||
curl --location 'http://localhost:8000/api/chat/stream' \
|
||||
--header 'Accept: */*' \
|
||||
--header 'Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7' \
|
||||
--header 'Cache-Control: no-cache' \
|
||||
--header 'Connection: keep-alive' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "what is mcp?"
|
||||
}
|
||||
],
|
||||
"thread_id": "test_thread_1",
|
||||
"auto_accepted_plan": true
|
||||
}'
|
||||
```
|
||||
|
||||
## Human in the Loop Case
|
||||
|
||||
### Initial Plan
|
||||
```
|
||||
curl --location 'http://localhost:8000/api/chat/stream' \
|
||||
--header 'Accept: */*' \
|
||||
--header 'Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7' \
|
||||
--header 'Cache-Control: no-cache' \
|
||||
--header 'Connection: keep-alive' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "what is mcp?"
|
||||
}
|
||||
],
|
||||
"thread_id": "test_thread_2",
|
||||
"auto_accepted_plan": false
|
||||
}'
|
||||
```
|
||||
|
||||
|
||||
### Edit the plan
|
||||
```
|
||||
{
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "make the last step be comprehensive"
|
||||
}
|
||||
],
|
||||
"thread_id": "test_thread_2",
|
||||
"auto_accepted_plan": false,
|
||||
"interrupt_feedback": "edit_plan"
|
||||
}
|
||||
```
|
||||
|
||||
### Accept the plan
|
||||
```
|
||||
{
|
||||
"thread_id": "test_thread_2",
|
||||
"auto_accepted_plan": false,
|
||||
"interrupt_feedback": "accepted"
|
||||
}
|
||||
```
|
@ -5,8 +5,10 @@ import "~/styles/globals.css";
|
||||
|
||||
import { type Metadata } from "next";
|
||||
import { Geist } from "next/font/google";
|
||||
import Script from "next/script";
|
||||
|
||||
import { ThemeProviderWrapper } from "~/components/deer-flow/theme-provider-wrapper";
|
||||
import { env } from "~/env";
|
||||
|
||||
import { Toaster } from "../components/deer-flow/toaster";
|
||||
|
||||
@ -30,6 +32,20 @@ export default function RootLayout({
|
||||
<body className="bg-app">
|
||||
<ThemeProviderWrapper>{children}</ThemeProviderWrapper>
|
||||
<Toaster />
|
||||
{
|
||||
// NO USER BEHAVIOR TRACKING OR PRIVATE DATA COLLECTION BY DEFAULT
|
||||
//
|
||||
// When `NEXT_PUBLIC_STATIC_WEBSITE_ONLY` is `true`, the script will be injected
|
||||
// into the page only when `AMPLITUDE_API_KEY` is provided in `.env`
|
||||
}
|
||||
{env.NEXT_PUBLIC_STATIC_WEBSITE_ONLY && env.AMPLITUDE_API_KEY && (
|
||||
<>
|
||||
<Script src="https://cdn.amplitude.com/script/d2197dd1df3f2959f26295bb0e7e849f.js"></Script>
|
||||
<Script id="amplitude-init" strategy="lazyOnload">
|
||||
{`window.amplitude.init('${env.AMPLITUDE_API_KEY}', {"fetchRemoteConfig":true,"autocapture":true});`}
|
||||
</Script>
|
||||
</>
|
||||
)}
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
@ -11,6 +11,7 @@ export const env = createEnv({
|
||||
*/
|
||||
server: {
|
||||
NODE_ENV: z.enum(["development", "test", "production"]),
|
||||
AMPLITUDE_API_KEY: z.string().optional(),
|
||||
},
|
||||
|
||||
/**
|
||||
@ -32,6 +33,7 @@ export const env = createEnv({
|
||||
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL,
|
||||
NEXT_PUBLIC_STATIC_WEBSITE_ONLY:
|
||||
process.env.NEXT_PUBLIC_STATIC_WEBSITE_ONLY === "true",
|
||||
AMPLITUDE_API_KEY: process.env.AMPLITUDE_API_KEY,
|
||||
},
|
||||
/**
|
||||
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
|
||||
|
Loading…
x
Reference in New Issue
Block a user