Skip to main content

Cycls SDK

Project description



Cycls


cycls.py

pip install cycls

sync app

from cycls import Cycls, Message, Text

push = Cycls()

@push("cake")
def app(m: Message):
    return Text(m.content)

https://cycls.com/@cake

async app

from cycls import Cycls, Message, Text

push = Cycls()

@push("her")
async def app(m: Message):
    return Text(m.content)

https://cycls.com/@her

debug

push = Cycls(debug=True)

groq app

from cycls import Cycls, Message, Text
from groq import AsyncGroq

push = Cycls()

groq = AsyncGroq(api_key="YOUR_KEY")

async def llm(content):
    stream = await groq.chat.completions.create(
        messages=[
            {"role": "system", "content": "you are a helpful assistant."},
            {"role": "user", "content": content}
        ],
        model="llama3-70b-8192",
        temperature=0.5, max_tokens=1024, top_p=1, stop=None, 
        stream=True,
    )

    async def event_stream():
        async for chunk in stream:
            yield f"{chunk.choices[0].delta.content}"

    return event_stream()

@push("groq-app")
async def app(x:Message):
    stream = await llm(x.content)
    return Text(stream)

https://cycls.com/@groq-app

history

@push("cake")
def app(m:Message):
   print(m.history)
   return Text(m.content)

groq app with history

from cycls import Cycls, Message, Text
from groq import AsyncGroq

push = Cycls()

groq = AsyncGroq(api_key="YOUR_KEY")

async def llm(messages):
    stream = await groq.chat.completions.create(
        messages=messages,
        model="llama3-70b-8192",
        temperature=0.5, max_tokens=1024, top_p=1, stop=None, 
        stream=True,
    )

    async def event_stream():
        async for chunk in stream:
            yield f"{chunk.choices[0].delta.content}"

    return event_stream()

@push("groq-app")
async def app(m:Message):
    x  = [{"role": "system", "content": "you are a helpful assistant."}]
    x +=  m.history
    x += [{"role": "user", "content": m.content}]
    stream = await llm(x)
    return Text(stream)

Known issues

  • Dev mode doesn't work on Windows machines

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cycls-0.0.2.10.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

cycls-0.0.2.10-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file cycls-0.0.2.10.tar.gz.

File metadata

  • Download URL: cycls-0.0.2.10.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.13 Linux/6.5.0-1021-azure

File hashes

Hashes for cycls-0.0.2.10.tar.gz
Algorithm Hash digest
SHA256 1d6c8d6302e45bd7302d96be16cc04fed7f059ad070e3b29907fe788deed7579
MD5 0d7f226a4abd6dded1ef7eed554dbb80
BLAKE2b-256 df9cfcf021a98b0f1d8af3505b9ef7089982374f282ee8d6f19638c41e437120

See more details on using hashes here.

File details

Details for the file cycls-0.0.2.10-py3-none-any.whl.

File metadata

  • Download URL: cycls-0.0.2.10-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.13 Linux/6.5.0-1021-azure

File hashes

Hashes for cycls-0.0.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 67e1fee8783e27ef4e174b0380746b5b2a790956fd8db9682e73772a29c1ac01
MD5 3e8358eb0c86b19bbf90577feac55fc7
BLAKE2b-256 72a4ac91fc3fc270cb58a1a36bf9d59dfb978e3257ff6cdeff4c8e2d70d9a5fa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page