| """ |
| Usage: |
| export TOGETHER_API_KEY=sk-****** |
| python3 together_example_complete.py |
| """ |
|
|
| import os |
|
|
| import sglang as sgl |
|
|
|
|
| @sgl.function |
| def few_shot_qa(s, question): |
| s += """The following are questions with answers. |
| Q: What is the capital of France? |
| A: Paris |
| Q: What is the capital of Germany? |
| A: Berlin |
| Q: What is the capital of Italy? |
| A: Rome |
| """ |
| s += "Q: " + question + "\n" |
| s += "A:" + sgl.gen("answer", stop="\n", temperature=0) |
|
|
|
|
| def single(): |
| state = few_shot_qa.run(question="What is the capital of the United States?") |
| answer = state["answer"].strip().lower() |
|
|
| assert "washington" in answer, f"answer: {state['answer']}" |
|
|
| print(state.text()) |
|
|
|
|
| def stream(): |
| state = few_shot_qa.run( |
| question="What is the capital of the United States?", stream=True |
| ) |
|
|
| for out in state.text_iter("answer"): |
| print(out, end="", flush=True) |
| print() |
|
|
|
|
| def batch(): |
| states = few_shot_qa.run_batch( |
| [ |
| {"question": "What is the capital of the United States?"}, |
| {"question": "What is the capital of China?"}, |
| ] |
| ) |
|
|
| for s in states: |
| print(s["answer"]) |
|
|
|
|
| if __name__ == "__main__": |
| backend = sgl.OpenAI( |
| model_name="mistralai/Mixtral-8x7B-Instruct-v0.1", |
| is_chat_model=False, |
| base_url="https://api.together.xyz/v1", |
| api_key=os.environ.get("TOGETHER_API_KEY"), |
| ) |
| sgl.set_default_backend(backend) |
|
|
| |
| print("\n========== single ==========\n") |
| single() |
|
|
| |
| print("\n========== stream ==========\n") |
| stream() |
|
|
| |
| print("\n========== batch ==========\n") |
| batch() |
|
|