Skip to content

Commit 262a6f6

Browse files
authored
Agent example for v1.0 release (opea-project#684)
Signed-off-by: minmin-intel <minmin.hou@intel.com> Signed-off-by: Chendi.Xue <chendi.xue@intel.com>
1 parent e48532e commit 262a6f6

21 files changed

+753
-65
lines changed

AgentQnA/docker_compose/intel/cpu/xeon/compose_openai.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ services:
1414
environment:
1515
ip_address: ${ip_address}
1616
strategy: rag_agent
17-
recursion_limit: ${recursion_limit}
17+
recursion_limit: ${recursion_limit_worker}
1818
llm_engine: openai
1919
OPENAI_API_KEY: ${OPENAI_API_KEY}
2020
model: ${model}
@@ -23,6 +23,7 @@ services:
2323
streaming: false
2424
tools: /home/user/tools/worker_agent_tools.yaml
2525
require_human_feedback: false
26+
RETRIEVAL_TOOL_URL: ${RETRIEVAL_TOOL_URL}
2627
no_proxy: ${no_proxy}
2728
http_proxy: ${http_proxy}
2829
https_proxy: ${https_proxy}
@@ -31,6 +32,7 @@ services:
3132
LANGCHAIN_PROJECT: "opea-worker-agent-service"
3233
port: 9095
3334

35+
3436
supervisor-react-agent:
3537
image: opea/comps-agent-langchain:latest
3638
container_name: react-agent-endpoint
@@ -43,13 +45,13 @@ services:
4345
environment:
4446
ip_address: ${ip_address}
4547
strategy: react_langgraph
46-
recursion_limit: ${recursion_limit}
48+
recursion_limit: ${recursion_limit_supervisor}
4749
llm_engine: openai
4850
OPENAI_API_KEY: ${OPENAI_API_KEY}
4951
model: ${model}
5052
temperature: ${temperature}
5153
max_new_tokens: ${max_new_tokens}
52-
streaming: ${streaming}
54+
streaming: false
5355
tools: /home/user/tools/supervisor_agent_tools.yaml
5456
require_human_feedback: false
5557
no_proxy: ${no_proxy}
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
# Copyright (C) 2024 Intel Corporation
22
# SPDX-License-Identifier: Apache-2.0
33

4+
export TOOLSET_PATH=$WORKDIR/GenAIExamples/AgentQnA/tools/
45
export ip_address=$(hostname -I | awk '{print $1}')
5-
export recursion_limit=12
6+
export recursion_limit_worker=12
7+
export recursion_limit_supervisor=10
68
export model="gpt-4o-mini-2024-07-18"
79
export temperature=0
810
export max_new_tokens=512
911
export OPENAI_API_KEY=${OPENAI_API_KEY}
1012
export WORKER_AGENT_URL="http://${ip_address}:9095/v1/chat/completions"
13+
export RETRIEVAL_TOOL_URL="http://${ip_address}:8889/v1/retrievaltool"
1114
export CRAG_SERVER=http://${ip_address}:8080
1215

1316
docker compose -f compose_openai.yaml up -d
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Copyright (C) 2024 Intel Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
services:
5+
tgi-server:
6+
image: ghcr.io/huggingface/tgi-gaudi:2.0.4
7+
container_name: tgi-server
8+
ports:
9+
- "8085:80"
10+
volumes:
11+
- ${HF_CACHE_DIR}:/data
12+
environment:
13+
no_proxy: ${no_proxy}
14+
http_proxy: ${http_proxy}
15+
https_proxy: ${https_proxy}
16+
HF_TOKEN: ${HUGGINGFACEHUB_API_TOKEN}
17+
HF_HUB_DISABLE_PROGRESS_BARS: 1
18+
HF_HUB_ENABLE_HF_TRANSFER: 0
19+
HABANA_VISIBLE_DEVICES: all
20+
OMPI_MCA_btl_vader_single_copy_mechanism: none
21+
PT_HPU_ENABLE_LAZY_COLLECTIVES: true
22+
runtime: habana
23+
cap_add:
24+
- SYS_NICE
25+
ipc: host
26+
command: --model-id ${LLM_MODEL_ID} --max-input-length 4096 --max-total-tokens 8192 --sharded true --num-shard ${NUM_SHARDS}
27+
worker-docgrader-agent:
28+
image: opea/comps-agent-langchain:latest
29+
container_name: docgrader-agent-endpoint
30+
depends_on:
31+
- tgi-server
32+
volumes:
33+
# - ${WORKDIR}/GenAIExamples/AgentQnA/docker_image_build/GenAIComps/comps/agent/langchain/:/home/user/comps/agent/langchain/
34+
- ${TOOLSET_PATH}:/home/user/tools/
35+
ports:
36+
- "9095:9095"
37+
ipc: host
38+
environment:
39+
ip_address: ${ip_address}
40+
strategy: rag_agent
41+
recursion_limit: ${recursion_limit_worker}
42+
llm_engine: tgi
43+
HUGGINGFACEHUB_API_TOKEN: ${HUGGINGFACEHUB_API_TOKEN}
44+
llm_endpoint_url: ${LLM_ENDPOINT_URL}
45+
model: ${LLM_MODEL_ID}
46+
temperature: ${temperature}
47+
max_new_tokens: ${max_new_tokens}
48+
streaming: false
49+
tools: /home/user/tools/worker_agent_tools.yaml
50+
require_human_feedback: false
51+
RETRIEVAL_TOOL_URL: ${RETRIEVAL_TOOL_URL}
52+
no_proxy: ${no_proxy}
53+
http_proxy: ${http_proxy}
54+
https_proxy: ${https_proxy}
55+
LANGCHAIN_API_KEY: ${LANGCHAIN_API_KEY}
56+
LANGCHAIN_TRACING_V2: ${LANGCHAIN_TRACING_V2}
57+
LANGCHAIN_PROJECT: "opea-worker-agent-service"
58+
port: 9095
59+
60+
61+
supervisor-react-agent:
62+
image: opea/comps-agent-langchain:latest
63+
container_name: react-agent-endpoint
64+
depends_on:
65+
- tgi-server
66+
- worker-docgrader-agent
67+
volumes:
68+
# - ${WORKDIR}/GenAIExamples/AgentQnA/docker_image_build/GenAIComps/comps/agent/langchain/:/home/user/comps/agent/langchain/
69+
- ${TOOLSET_PATH}:/home/user/tools/
70+
ports:
71+
- "9090:9090"
72+
ipc: host
73+
environment:
74+
ip_address: ${ip_address}
75+
strategy: react_langgraph
76+
recursion_limit: ${recursion_limit_supervisor}
77+
llm_engine: tgi
78+
HUGGINGFACEHUB_API_TOKEN: ${HUGGINGFACEHUB_API_TOKEN}
79+
llm_endpoint_url: ${LLM_ENDPOINT_URL}
80+
model: ${LLM_MODEL_ID}
81+
temperature: ${temperature}
82+
max_new_tokens: ${max_new_tokens}
83+
streaming: false
84+
tools: /home/user/tools/supervisor_agent_tools.yaml
85+
require_human_feedback: false
86+
no_proxy: ${no_proxy}
87+
http_proxy: ${http_proxy}
88+
https_proxy: ${https_proxy}
89+
LANGCHAIN_API_KEY: ${LANGCHAIN_API_KEY}
90+
LANGCHAIN_TRACING_V2: ${LANGCHAIN_TRACING_V2}
91+
LANGCHAIN_PROJECT: "opea-supervisor-agent-service"
92+
CRAG_SERVER: $CRAG_SERVER
93+
WORKER_AGENT_URL: $WORKER_AGENT_URL
94+
port: 9090
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Copyright (C) 2024 Intel Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
WORKPATH=$(dirname "$PWD")/..
5+
# export WORKDIR=$WORKPATH/../../
6+
echo "WORKDIR=${WORKDIR}"
7+
export ip_address=$(hostname -I | awk '{print $1}')
8+
export HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN}
9+
10+
# LLM related environment variables
11+
export HF_CACHE_DIR=${HF_CACHE_DIR}
12+
ls $HF_CACHE_DIR
13+
export HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN}
14+
export LLM_MODEL_ID="meta-llama/Meta-Llama-3.1-70B-Instruct"
15+
export NUM_SHARDS=4
16+
export LLM_ENDPOINT_URL="http://${ip_address}:8085"
17+
export temperature=0.01
18+
export max_new_tokens=512
19+
20+
# agent related environment variables
21+
export TOOLSET_PATH=$WORKDIR/GenAIExamples/AgentQnA/tools/
22+
echo "TOOLSET_PATH=${TOOLSET_PATH}"
23+
export recursion_limit_worker=12
24+
export recursion_limit_supervisor=10
25+
export WORKER_AGENT_URL="http://${ip_address}:9095/v1/chat/completions"
26+
export RETRIEVAL_TOOL_URL="http://${ip_address}:8889/v1/retrievaltool"
27+
export CRAG_SERVER=http://${ip_address}:8080
28+
29+
docker compose -f compose.yaml up -d
30+
31+
sleep 5s
32+
echo "Waiting tgi gaudi ready"
33+
n=0
34+
until [[ "$n" -ge 100 ]] || [[ $ready == true ]]; do
35+
docker logs tgi-server &> tgi-gaudi-service.log
36+
n=$((n+1))
37+
if grep -q Connected tgi-gaudi-service.log; then
38+
break
39+
fi
40+
sleep 5s
41+
done
42+
sleep 5s
43+
echo "Service started successfully"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (C) 2024 Intel Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
services:
5+
agent-endpoint:
6+
build:
7+
context: GenAIComps
8+
dockerfile: comps/agent/langchain/Dockerfile
9+
args:
10+
http_proxy: ${http_proxy}
11+
https_proxy: ${https_proxy}
12+
no_proxy: ${no_proxy}
13+
image: ${REGISTRY:-opea}/comps-agent-langchain:${TAG:-latest}

0 commit comments

Comments
 (0)