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)

https://cycls.com/@cake

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)

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

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.11.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: cycls-0.0.2.11.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.11.tar.gz
Algorithm Hash digest
SHA256 f817db23e6df51fcfc08d899ab8a2e87af10d85e025ab2686064769b859c5e5d
MD5 4809b0961fd321a3fd5950955b04a142
BLAKE2b-256 84a5c8a4e66132b65d58eb070481f14c5b3e6689c7d4c376e195825003113768

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cycls-0.0.2.11-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.11-py3-none-any.whl
Algorithm Hash digest
SHA256 2969ccfa713e67220cef80cbdea579705c154e1627b91a6fc450db33408812a1
MD5 c04b67b2c27c28f13b4299d404cc35fd
BLAKE2b-256 ed6f4d8970244045db2a09fa77382e2188b0a703bbe14d77a3d86229784210c3

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