Python langchain-like client library for the Rebyte API
Project description
rebyte-langchain
rebyte-langchain is a Python library to access the ReByte Agent REST API. This library enables you to use rebyte in a langchain-like style.
Features
- Generate streaming or non-streaming output.
- Use async or sync method.
- Compatiable with langchain callback functions.
- Support stateful agent memory with session_id.
Install
pip install rebyte-langchain
Simple Demo
# import packages
from rebyte_langchain.rebyte_langchain import RebyteEndpoint
import os
import asyncio
from langchain.schema.messages import HumanMessage
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
# required keys & config
# You can set REBYTE_API_KEY as an environment variable
os.environ['REBYTE_API_KEY'] = "<rebyte_api_key>"
# Or pass it as an argument to the RebyteEndpoint constructor
test_rebyte_api_key:str = "<rebyte_api_key>"
# create an agent on rebyte platform and get the project_id and callable_id
# https://rebyte.ai/api/sdk/p/{test_project_id}/a/{test_callable_id}/r
test_project_id:str = "<test_project_id>"
test_callable_id:str = "<test_callable_id>"
# You may use any string as session_id
# Note that you must set session_id if you use any states ("memory") in your agent, such as KV storage. Otherwise, the agent will raise error
# Or you can leave it as None when the agent has no states. The system will generate a random session_id for you.
test_session_id:str = None
# test input
human_messages = [HumanMessage(content="Who are you")]
def generate(stream = False):
model = RebyteEndpoint(
rebyte_api_key=test_rebyte_api_key,
project_id=test_project_id,
callable_id=test_callable_id,
session_id=test_session_id,
streaming=stream
)
response = model.generate([human_messages],
callbacks=[StreamingStdOutCallbackHandler()]
)
return response
async def agenerate(stream = False):
model = RebyteEndpoint(
rebyte_api_key=test_rebyte_api_key,
project_id=test_project_id,
callable_id=test_callable_id,
session_id=test_session_id,
streaming=stream
)
response = await model.agenerate(messages=
[human_messages],
callbacks=[StreamingStdOutCallbackHandler()]
)
return response
if __name__ == "__main__":
print("\n\nTEST GENERATE\n\n")
response = generate(stream=True)
print("\n\nTEST AGENERATE\n\n")
loop = asyncio.get_event_loop()
loop.run_until_complete(agenerate(stream=True))
Please see more examples in main.py and example.ipynb.
Documentation
More information can be found on the ReByte Documentation Site.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rebyte_langchain-0.0.4.tar.gz.
File metadata
- Download URL: rebyte_langchain-0.0.4.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07e0df4f51e2a70d047d4404f50e58b928790618c656c454fb18462f89310d39
|
|
| MD5 |
fd0bb66b03e04fe16d7c8b32c4e6868d
|
|
| BLAKE2b-256 |
34a9a7ff302a1a4b36e8459998c44540f445e76917abbeb76e45171fc03ab7fd
|
File details
Details for the file rebyte_langchain-0.0.4-py3-none-any.whl.
File metadata
- Download URL: rebyte_langchain-0.0.4-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88bd2f4c8691324ba6543c0ff36bfe742d41aa0f522815530ca8b0d476197e5d
|
|
| MD5 |
738677f6779d091595871327564eee5f
|
|
| BLAKE2b-256 |
0ca8406daf37688a07c3edc20949c1cf08116ff166b3dac235d27bfbfce5d616
|