readme: ---
  license: mit
  tags:
  - setfit
  - endpoints-template
  - text-classification
  inference: false
  ---
  
  # SetFit AG News 
  
  This is a [SetFit](https://github.com/huggingface/setfit/tree/main) classifier fine-tuned on the [AG News](https://huggingface.co/datasets/ag_news) dataset. 
  The model was created following the [Outperform OpenAI GPT-3 with SetFit for text-classifiation](https://www.philschmid.de/getting-started-setfit) blog post of [Philipp Schmid](https://www.linkedin.com/in/philipp-schmid-a6a2bb196/).
  
  The model achieves an accuracy of 0.87 on the test set and was only trained with `32` total examples (8 per class).
  
  
  ```bash
  ***** Running evaluation *****
  model used: sentence-transformers/all-mpnet-base-v2
  train dataset: 32 samples
  accuracy: 0.8731578947368421
  ```
  
  #### What is SetFit?
  
  "SetFit" (https://arxiv.org/abs/2209.11055) is a new approach that can be used to create high accuracte text-classification models with limited labeled data. SetFit is outperforming GPT-3 in 7 out of 11 tasks, while being 1600x smaller.
  Check out the blog to learn more: [Outperform OpenAI GPT-3 with SetFit for text-classifiation](https://www.philschmid.de/getting-started-setfit)
  
  
  
  # Inference Endpoints 
  
  The model repository also implements a generic custom `handler.py` as an example for how to use `SetFit` models with [inference-endpoints](https://hf.co/inference-endpoints). 
  
  Code: https://huggingface.co/philschmid/setfit-ag-news-endpoint/blob/main/handler.py
  
  ## Send requests with Pyton
  
  We are going to use requests to send our requests. (make your you have it installed `pip install requests`)
  
  
  ```python
  import json
  import requests as r
  
  ENDPOINT_URL=""# url of your endpoint
  HF_TOKEN=""
  
  # payload samples
  regular_payload = { "inputs": "Coming to The Rescue Got a unique problem? Not to worry: you can find a financial planner for every specialized need"}
  
  # HTTP headers for authorization
  headers= {
      "Authorization": f"Bearer {HF_TOKEN}",
      "Content-Type": "application/json"
  }
  
  # send request
  response = r.post(ENDPOINT_URL, headers=headers, json=paramter_payload)
  classified = response.json()
  
  print(classified)
  # [ { "label": "World", "score": 0.12341519122860946 }, { "label": "Sports", "score": 0.11741269832494523 }, { "label": "Business", "score": 0.6124446065942992 }, { "label": "Sci/Tech", "score": 0.14672750385214603 } ]
  ```
  
  
  **curl example**
  
  ```bash
  curl https://YOURDOMAIN.us-east-1.aws.endpoints.huggingface.cloud \
  -X POST \
  -d '{"inputs": "Coming to The Rescue Got a unique problem? Not to worry: you can find a financial planner for every specialized need"}' \
  -H "Authorization: Bearer XXX" \
  -H "Content-Type: application/json"
  ```