Spaces:
Running
Download README.md from shak3008/ecomm-openenv: direct link, hf CLI and curl.
- Browser
- Download file 3.23 kB
-
https://huggingface.co/spaces/shak3008/ecomm-openenv/resolve/main/README.md
- Command line
-
hf download hf://spaces/shak3008/ecomm-openenv/README.md
-
curl -L -o README.md https://huggingface.co/spaces/shak3008/ecomm-openenv/resolve/main/README.md
title: Ecomm OpenEnv
emoji: 🤖
colorFrom: blue
colorTo: green
sdk: docker
app_port: 7860
pinned: false
E-Commerce Customer Support Decision Environment (OpenEnv)
Overview
This project is an OpenEnv environment for testing how an agent handles customer support decisions in an e-commerce setting.
The idea is to simulate cases where the decision isn’t obvious — things like missing proof, suspicious return patterns, or unclear customer messages. Instead of just picking the “correct” label, the agent has to make a reasonable call based on the situation.
Problem
Most customer support decisions involve trade-offs rather than clear rules.
Customer support isn’t clean or structured in real life. Some examples:
- product reported as damaged but no images
- customer has a lot of past returns (possible abuse)
- request is technically valid but context is messy
- message itself is vague
This environment tries to reflect that kind of ambiguity and see how an agent deals with it.
Actions
The agent selects one of the following actions:
approve_refund
approve_replacement
reject
request_info
Observations
Each case is turned into a support ticket (plain text). It includes:
- customer message
- product
- days since delivery
- whether images were provided
- return history
So the agent has to read and interpret instead of just using structured fields directly.
Reward logic
The reward isn’t just strict right/wrong.
- correct decision → 1.0
- reasonable alternative → 0.5
- wrong → 0.0
- bad decisions → negative penalties
There are also some overrides:
- high return history → lean towards reject
- damaged claim without images → ask for more info
Final score from /grader is always between 0 and 1.
Tasks
Dataset is split into:
easy → obvious cases
medium → needs some reasoning
hard → ambiguous, possible fraud, missing info
API
GET /reset (also supports POST)
POST /step
GET /state
GET /tasks
GET /grader
GET /baseline
GET /health
Running locally (Docker)
docker build -t openenv .
docker run -p 7860:7860 openenv
API will be at:
Inference
inference.py is the required evaluation script.
It:
- uses OpenAI client via API_BASE_URL, MODEL_NAME, HF_TOKEN
- interacts with /reset and /step
- outputs logs in [START], [STEP], [END] format
Baseline
baseline.py uses OpenAI to choose actions from the ticket text.
Run it like this:
export OPENAI_API_KEY=your_key
export ENV_URL=http://localhost:7860
python baseline.py
Expected score is roughly:
Average score: 0.45 (20 episodes, fallback agent)
Note: OpenAI-based baseline expected to perform higher
Structure
data/
easy.json
medium.json
hard.json
env/
app.py
baseline.py
inference.py
openenv.yaml
Dockerfile
README.md
Possible extensions
- multi-step conversations
- stricter policy constraints
- larger dataset
Notes
This environment is designed to stay simple while still capturing realistic decision-making scenarios. The goal is not perfect accuracy, but reasonable behavior under uncertainty.