forked from sgl-project/sglang
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update quick start examples (sgl-project#120)
- Loading branch information
1 parent
4ea92f8
commit 0617528
Showing
20 changed files
with
555 additions
and
225 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,67 @@ | ||
from sglang import function, system, user, assistant, gen, set_default_backend, Anthropic | ||
""" | ||
Usage: | ||
export ANTHROPIC_API_KEY=sk-****** | ||
python3 anthropic_example_chat.py | ||
""" | ||
import sglang as sgl | ||
|
||
|
||
@function | ||
@sgl.function | ||
def multi_turn_question(s, question_1, question_2): | ||
s += user(question_1) | ||
s += assistant(gen("answer_1", max_tokens=256)) | ||
s += user(question_2) | ||
s += assistant(gen("answer_2", max_tokens=256)) | ||
s += sgl.user(question_1) | ||
s += sgl.assistant(sgl.gen("answer_1", max_tokens=256)) | ||
s += sgl.user(question_2) | ||
s += sgl.assistant(sgl.gen("answer_2", max_tokens=256)) | ||
|
||
set_default_backend(Anthropic("claude-2")) | ||
|
||
state = multi_turn_question.run( | ||
question_1="What is the capital of the United States?", | ||
question_2="List two local attractions.", | ||
) | ||
def single(): | ||
state = multi_turn_question.run( | ||
question_1="What is the capital of the United States?", | ||
question_2="List two local attractions.", | ||
) | ||
|
||
for m in state.messages(): | ||
print(m["role"], ":", m["content"]) | ||
for m in state.messages(): | ||
print(m["role"], ":", m["content"]) | ||
|
||
print("answer_1", state["answer_1"]) | ||
|
||
|
||
def stream(): | ||
state = multi_turn_question.run( | ||
question_1="What is the capital of the United States?", | ||
question_2="List two local attractions.", | ||
stream=True | ||
) | ||
|
||
for out in state.text_iter(): | ||
print(out, end="", flush=True) | ||
print() | ||
|
||
|
||
def batch(): | ||
states = multi_turn_question.run_batch([ | ||
{"question_1": "What is the capital of the United States?", | ||
"question_2": "List two local attractions."}, | ||
|
||
{"question_1": "What is the capital of France?", | ||
"question_2": "What is the population of this city?"}, | ||
]) | ||
|
||
for s in states: | ||
print(s.messages()) | ||
|
||
|
||
if __name__ == "__main__": | ||
sgl.set_default_backend(sgl.Anthropic("claude-2")) | ||
|
||
# Run a single request | ||
print("\n========== single ==========\n") | ||
single() | ||
|
||
# Stream output | ||
print("\n========== stream ==========\n") | ||
stream() | ||
|
||
# Run a batch of requests | ||
print("\n========== batch ==========\n") | ||
batch() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
""" | ||
Usage: | ||
export GCP_PROJECT_ID=****** | ||
python3 gemini_example_chat.py | ||
""" | ||
import sglang as sgl | ||
|
||
|
||
@sgl.function | ||
def multi_turn_question(s, question_1, question_2): | ||
s += sgl.user(question_1) | ||
s += sgl.assistant(sgl.gen("answer_1", max_tokens=256)) | ||
s += sgl.user(question_2) | ||
s += sgl.assistant(sgl.gen("answer_2", max_tokens=256)) | ||
|
||
|
||
def single(): | ||
state = multi_turn_question.run( | ||
question_1="What is the capital of the United States?", | ||
question_2="List two local attractions.", | ||
) | ||
|
||
for m in state.messages(): | ||
print(m["role"], ":", m["content"]) | ||
|
||
print("answer_1", state["answer_1"]) | ||
|
||
|
||
def stream(): | ||
state = multi_turn_question.run( | ||
question_1="What is the capital of the United States?", | ||
question_2="List two local attractions.", | ||
stream=True | ||
) | ||
|
||
for out in state.text_iter(): | ||
print(out, end="", flush=True) | ||
print() | ||
|
||
|
||
def batch(): | ||
states = multi_turn_question.run_batch([ | ||
{"question_1": "What is the capital of the United States?", | ||
"question_2": "List two local attractions."}, | ||
|
||
{"question_1": "What is the capital of France?", | ||
"question_2": "What is the population of this city?"}, | ||
]) | ||
|
||
for s in states: | ||
print(s.messages()) | ||
|
||
|
||
if __name__ == "__main__": | ||
sgl.set_default_backend(sgl.VertexAI("gemini-pro")) | ||
|
||
# Run a single request | ||
print("\n========== single ==========\n") | ||
single() | ||
|
||
# Stream output | ||
print("\n========== stream ==========\n") | ||
stream() | ||
|
||
# Run a batch of requests | ||
print("\n========== batch ==========\n") | ||
batch() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.