"Finds the current time in a specific timezone.\n",
"Finds the current time in a specific timezone.\n",
"\n",
"\n",
":param timezone: The timezone to find the current time in, should\n",
":param timezone: The timezone to find the current time in, should\n",
" be a valid timezone from the IANA Time Zone Database like\n",
" be a valid timezone from the IANA Time Zone Database like\n",
" \"America/New_York\" or \"Europe/London\". Do NOT put the place\n",
" \"America/New_York\" or \"Europe/London\". Do NOT put the place\n",
" name itself like \"rome\", or \"new york\", you must provide\n",
" name itself like \"rome\", or \"new york\", you must provide\n",
" the IANA format.\n",
" the IANA format.\n",
":type timezone: str\n",
":type timezone: str\n",
":return: The current time in the specified timezone.\n",
":return: The current time in the specified timezone.\n",
" \"\"\"\n",
" \"\"\"\n",
" now = datetime.now(ZoneInfo(timezone))\n",
" now = datetime.now(ZoneInfo(timezone))\n",
" return now.strftime(\"%H:%M\")"
" return now.strftime(\"%H:%M\")"
...
@@ -449,7 +451,6 @@
...
@@ -449,7 +451,6 @@
}
}
],
],
"source": [
"source": [
"\n",
"get_time(**out.function_call)"
"get_time(**out.function_call)"
]
]
},
},
...
...
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
[](https://colab.research.google.com/github/aurelio-labs/semantic-router/blob/main/docs/07-ollama-local-execution.ipynb) [](https://nbviewer.org/github/aurelio-labs/semantic-router/blob/main/docs/07-ollama-local-execution.ipynb)
[](https://colab.research.google.com/github/aurelio-labs/semantic-router/blob/main/docs/07-ollama-local-execution.ipynb) [](https://nbviewer.org/github/aurelio-labs/semantic-router/blob/main/docs/07-ollama-local-execution.ipynb)
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# Local Dynamic Routes - With Ollama
# Local Dynamic Routes - With Ollama
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Fully local Semantic Router with Ollama and HuggingFace Encoder
## Fully local Semantic Router with Ollama and HuggingFace Encoder
There are many reasons users might choose to roll their own LLMs rather than use a third-party service. Whether it's due to cost, privacy or compliance, Semantic Router supports the use of "local" LLMs through `llama.cpp`.
There are many reasons users might choose to roll their own LLMs rather than use a third-party service. Whether it's due to cost, privacy or compliance, Semantic Router supports the use of "local" LLMs through `llama.cpp`.
Below is an example of using semantic router which leverages Ollama in order to utilize the **OpenHermes** LLM.
Below is an example of using semantic router which leverages Ollama in order to utilize the **OpenHermes** LLM.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
We need `pillow`, `torch` and `transformers` for the HuggingFace encoders.
We need `pillow`, `torch` and `transformers` for the HuggingFace encoders.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Installing the Library and Dependencies
## Installing the Library and Dependencies
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
!pipinstallsemantic_router[local]==0.0.23 \
!pipinstallsemantic_router[local]==0.0.23 \
pillowtorchtransformers
pillowtorchtransformers
```
```
%% Output
%% Output
Requirement already satisfied: semantic_router[local]==0.0.23 in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (0.0.23)
Requirement already satisfied: semantic_router[local]==0.0.23 in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (0.0.23)
Requirement already satisfied: pillow in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (10.2.0)
Requirement already satisfied: pillow in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (10.2.0)
Requirement already satisfied: torch in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (2.2.0)
Requirement already satisfied: torch in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (2.2.0)
Requirement already satisfied: transformers in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (4.38.0)
Requirement already satisfied: transformers in c:\users\siraj\documents\personal\work\aurelio\20240123 semantic router\venvs\semantic_router\lib\site-packages (4.38.0)
c:\Users\Siraj\Documents\Personal\Work\Aurelio\20240123 Semantic Router\venvs\semantic_router\Lib\site-packages\tqdm\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
c:\Users\Siraj\Documents\Personal\Work\Aurelio\20240123 Semantic Router\venvs\semantic_router\Lib\site-packages\tqdm\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
from .autonotebook import tqdm as notebook_tqdm
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Define Static Routes
## Define Static Routes
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
fromsemantic_routerimportRoute
fromsemantic_routerimportRoute
# we could use this as a guide for our chatbot to avoid political conversations
# we could use this as a guide for our chatbot to avoid political conversations
politics=Route(
politics=Route(
name="politics",
name="politics",
utterances=[
utterances=[
"isn't politics the best thing ever",
"isn't politics the best thing ever",
"why don't you tell me about your political opinions",
"why don't you tell me about your political opinions",
"don't you just love the president""don't you just hate the president",
"don't you just love the president""don't you just hate the president",
"they're going to destroy this country!",
"they're going to destroy this country!",
"they will save the country!",
"they will save the country!",
],
],
)
)
# this could be used as an indicator to our chatbot to switch to a more
# this could be used as an indicator to our chatbot to switch to a more
# conversational prompt
# conversational prompt
chitchat=Route(
chitchat=Route(
name="chitchat",
name="chitchat",
utterances=[
utterances=[
"how's the weather today?",
"how's the weather today?",
"how are things going?",
"how are things going?",
"lovely weather today",
"lovely weather today",
"the weather is horrendous",
"the weather is horrendous",
"let's go to the chippy",
"let's go to the chippy",
],
],
)
)
# we place both of our decisions together into single list
# we place both of our decisions together into single list
routes=[politics,chitchat]
routes=[politics,chitchat]
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Define Route Layer with Ollama
## Define Route Layer with Ollama
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
fromsemantic_router.layerimportRouteLayer
fromsemantic_router.layerimportRouteLayer
fromsemantic_router.llms.ollamaimportOllamaLLM
fromsemantic_router.llms.ollamaimportOllamaLLM
llm=OllamaLLM(llm_name="openhermes")# Change llm_name if you want to use a different LLM with dynamic routes.
[32m2024-02-22 10:59:54 INFO semantic_router.utils.logger local[0m
[32m2024-02-22 10:59:54 INFO semantic_router.utils.logger local[0m
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Test Static Routes
## Test Static Routes
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
rl("don't you love politics?").name
rl("don't you love politics?").name
```
```
%% Output
%% Output
'politics'
'politics'
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
rl("how's the weather today?").name
rl("how's the weather today?").name
```
```
%% Output
%% Output
'chitchat'
'chitchat'
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
rl("I'm interested in learning about llama 2").name
rl("I'm interested in learning about llama 2").name
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Test Dynamic Routes
## Test Dynamic Routes
Dynamic routes work by associating a function with a route. If the input utterance is similar enough to the utterances of the route, such that route is chosen by the semantic router, then this triggers a secondary process:
Dynamic routes work by associating a function with a route. If the input utterance is similar enough to the utterances of the route, such that route is chosen by the semantic router, then this triggers a secondary process:
The LLM we specified in the `RouteLayer` (we specified Ollama, which isn't strictly an LLM, but which defaults to using the `OpenHermes` LLM), is then usde to take a `function_schema`, and the input utterance, and extract values from the input utterance which can be used as arguments for `function` described by the the `funcion_schema`. The returned values can then be used in the `function` to obtain an output.
The LLM we specified in the `RouteLayer` (we specified Ollama, which isn't strictly an LLM, but which defaults to using the `OpenHermes` LLM), is then usde to take a `function_schema`, and the input utterance, and extract values from the input utterance which can be used as arguments for `function` described by the the `funcion_schema`. The returned values can then be used in the `function` to obtain an output.
So, in short, it's a way of generating `function` inputs from an utterance, if that utterance matches the route utterances closely enough.
So, in short, it's a way of generating `function` inputs from an utterance, if that utterance matches the route utterances closely enough.
In the below example the utterance **"what is the time in new york city?"** is used to trigger the "get_time" route, which has the `function_schema` of a likewise named `get_time()` function associated with it. Then Ollama is used to run `OpenHermes` locally, which extracts the correctly formatted IANA timezone (`"America/New York"`), based on this utterance and information we provide it about the `function` in the `function_schema`. The returned stirng "America/New York" can then be used directly in the `get_time()` function to return the actual time in New York city.
In the below example the utterance **"what is the time in new york city?"** is used to trigger the "get_time" route, which has the `function_schema` of a likewise named `get_time()` function associated with it. Then Ollama is used to run `OpenHermes` locally, which extracts the correctly formatted IANA timezone (`"America/New York"`), based on this utterance and information we provide it about the `function` in the `function_schema`. The returned stirng "America/New York" can then be used directly in the `get_time()` function to return the actual time in New York city.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
fromdatetimeimportdatetime
fromdatetimeimportdatetime
fromzoneinfoimportZoneInfo
fromzoneinfoimportZoneInfo
defget_time(timezone:str)->str:
defget_time(timezone:str)->str:
"""
"""
Finds the current time in a specific timezone.
Finds the current time in a specific timezone.
:param timezone: The timezone to find the current time in, should
:param timezone: The timezone to find the current time in, should
be a valid timezone from the IANA Time Zone Database like
be a valid timezone from the IANA Time Zone Database like
"America/New_York" or "Europe/London". Do NOT put the place
"America/New_York" or "Europe/London". Do NOT put the place
name itself like "rome", or "new york", you must provide
name itself like "rome", or "new york", you must provide
the IANA format.
the IANA format.
:type timezone: str
:type timezone: str
:return: The current time in the specified timezone.
:return: The current time in the specified timezone.
'description': 'Finds the current time in a specific timezone.\n\n:param timezone: The timezone to find the current time in, should\n be a valid timezone from the IANA Time Zone Database like\n "America/New_York" or "Europe/London". Do NOT put the place\n name itself like "rome", or "new york", you must provide\n the IANA format.\n:type timezone: str\n:return: The current time in the specified timezone.\n ',
'description': 'Finds the current time in a specific timezone.\n\n:param timezone: The timezone to find the current time in, should\n be a valid timezone from the IANA Time Zone Database like\n "America/New_York" or "Europe/London". Do NOT put the place\n name itself like "rome", or "new york", you must provide\n the IANA format.\n:type timezone: str\n:return: The current time in the specified timezone.\n ',
'signature': '(timezone: str) -> str',
'signature': '(timezone: str) -> str',
'output': "<class 'str'>"}
'output': "<class 'str'>"}
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
time_route=Route(
time_route=Route(
name="get_time",
name="get_time",
utterances=[
utterances=[
"what is the time in new york city?",
"what is the time in new york city?",
"what is the time in london?",
"what is the time in london?",
"I live in Rome, what time is it?",
"I live in Rome, what time is it?",
],
],
function_schema=schema,
function_schema=schema,
)
)
```
```
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
rl.add(time_route)
rl.add(time_route)
```
```
%% Output
%% Output
[32m2024-02-22 10:59:55 INFO semantic_router.utils.logger Adding `get_time` route[0m
[32m2024-02-22 10:59:55 INFO semantic_router.utils.logger Adding `get_time` route[0m
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
out=rl("what is the time in new york city?")
out=rl("what is the time in new york city?")
print(out)
print(out)
```
```
%% Output
%% Output
[32m2024-02-22 11:01:29 INFO semantic_router.utils.logger Extracting function input...[0m
[32m2024-02-22 11:01:29 INFO semantic_router.utils.logger Extracting function input...[0m
[32m2024-02-22 11:01:32 INFO semantic_router.utils.logger LLM output: {
[32m2024-02-22 11:01:32 INFO semantic_router.utils.logger LLM output: {
"timezone": "America/New_York"
"timezone": "America/New_York"
}[0m
}[0m
[32m2024-02-22 11:01:32 INFO semantic_router.utils.logger Function inputs: {'timezone': 'America/New_York'}[0m
[32m2024-02-22 11:01:32 INFO semantic_router.utils.logger Function inputs: {'timezone': 'America/New_York'}[0m
"In a recent surge of social media discussions on Weibo, Chinese netizens have been engaging in conversations about the struggles and challenges of earning money. The online debate sparked a wave of opinions and perspectives on the relationship between hard work, high pay, and finding contentment. Among the tweets, several users pontificated that one should avoid earning \"too much hard-earned money.\"\n",
"In a recent surge of social media discussions on Weibo, Chinese netizens have been engaging in conversations about the struggles and challenges of earning money. The online debate sparked a wave of opinions and perspectives on the relationship between hard work, high pay, and finding contentment. Among the tweets, several users pontificated that one should avoid earning \"too much hard-earned money.\"\n",
"The tweets and discussions revolve around the idea that working too hard for one's income can have a detrimental effect on one's life, both physically and mentally. Some users advocate for finding opportunities that align with one's strengths and passions, rather than simply focusing on high-paying jobs that may require excessive hours and intense labor.\n",
"The tweets and discussions revolve around the idea that working too hard for one's income can have a detrimental effect on one's life, both physically and mentally. Some users advocate for finding opportunities that align with one's strengths and passions, rather than simply focusing on high-paying jobs that may require excessive hours and intense labor.\n",
"One Weibo user pontificates, \"Don't earn that much hard-earned money,\" a sentiment echoed by others with tweets such as, \"Why is it that when earning money, that process always has to be so tough?\" This question is followed by a comparison between two types of people - those who are used to earning money the hard way and those who seem to effortlessly obtain wealth. While the former group is depicted as having been taught to suffer from a young age, the latter is shown as being able to focus solely on their natural talents and thriving in their niche advantageously.\n",
"One Weibo user pontificates, \"Don't earn that much hard-earned money,\" a sentiment echoed by others with tweets such as, \"Why is it that when earning money, that process always has to be so tough?\" This question is followed by a comparison between two types of people - those who are used to earning money the hard way and those who seem to effortlessly obtain wealth. While the former group is depicted as having been taught to suffer from a young age, the latter is shown as being able to focus solely on their natural talents and thriving in their niche advantageously.\n",
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
"Heart count: 0/2\n",
"Heart count: 0/2\n",
"Note: The author did not include any Chinese characters in the final response.\n",
"Note: The author did not include any Chinese characters in the final response.\n",
"os.environ[\"OPENAI_API_KEY\"] = os.getenv(\"OPENAI_API_KEY\") or getpass(\"Enter your OpenAI API key: \")\n",
"os.environ[\"OPENAI_API_KEY\"] = os.getenv(\"OPENAI_API_KEY\") or getpass(\n",
" \"Enter your OpenAI API key: \"\n",
")\n",
"\n",
"\n",
"splitter = RollingWindowSplitter(\n",
"splitter = RollingWindowSplitter(\n",
" encoder=OpenAIEncoder(),\n",
" encoder=OpenAIEncoder(),\n",
" min_split_tokens=50,\n",
" min_split_tokens=50,\n",
" max_split_tokens=300,\n",
" max_split_tokens=300,\n",
" window_size=5, # sentences\n",
" window_size=5, # sentences\n",
" plot_splits=True\n",
" plot_splits=True,\n",
")"
")"
]
]
},
},
...
...
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
text='''
text="""
In a recent surge of social media discussions on Weibo, Chinese netizens have been engaging in conversations about the struggles and challenges of earning money. The online debate sparked a wave of opinions and perspectives on the relationship between hard work, high pay, and finding contentment. Among the tweets, several users pontificated that one should avoid earning "too much hard-earned money."
In a recent surge of social media discussions on Weibo, Chinese netizens have been engaging in conversations about the struggles and challenges of earning money. The online debate sparked a wave of opinions and perspectives on the relationship between hard work, high pay, and finding contentment. Among the tweets, several users pontificated that one should avoid earning "too much hard-earned money."
The tweets and discussions revolve around the idea that working too hard for one's income can have a detrimental effect on one's life, both physically and mentally. Some users advocate for finding opportunities that align with one's strengths and passions, rather than simply focusing on high-paying jobs that may require excessive hours and intense labor.
The tweets and discussions revolve around the idea that working too hard for one's income can have a detrimental effect on one's life, both physically and mentally. Some users advocate for finding opportunities that align with one's strengths and passions, rather than simply focusing on high-paying jobs that may require excessive hours and intense labor.
One Weibo user pontificates, "Don't earn that much hard-earned money," a sentiment echoed by others with tweets such as, "Why is it that when earning money, that process always has to be so tough?" This question is followed by a comparison between two types of people - those who are used to earning money the hard way and those who seem to effortlessly obtain wealth. While the former group is depicted as having been taught to suffer from a young age, the latter is shown as being able to focus solely on their natural talents and thriving in their niche advantageously.
One Weibo user pontificates, "Don't earn that much hard-earned money," a sentiment echoed by others with tweets such as, "Why is it that when earning money, that process always has to be so tough?" This question is followed by a comparison between two types of people - those who are used to earning money the hard way and those who seem to effortlessly obtain wealth. While the former group is depicted as having been taught to suffer from a young age, the latter is shown as being able to focus solely on their natural talents and thriving in their niche advantageously.
Discussions on the platform draw attention to a variety of issues that those who earn money the hard way might face. For example, they are described as likely having to work overtime, forgo time off for illness or rest, and maintain an unyielding dedication to their occupation, which often results in a never-ending cycle of work without any perceived progression in their lives.
Discussions on the platform draw attention to a variety of issues that those who earn money the hard way might face. For example, they are described as likely having to work overtime, forgo time off for illness or rest, and maintain an unyielding dedication to their occupation, which often results in a never-ending cycle of work without any perceived progression in their lives.
Another tweet that captures this sentiment reads, "Drowning in more work and poverty despite trying harder and harder," pointing to a sense of despair and dissatisfaction that comes with work that is both disproportionately demanding and inadequately rewarding. Critics also note how the pursuit of hard-earned money could potentially create physical and mental health risks due to the unrelenting pressure and stress that these jobs might impose.
Another tweet that captures this sentiment reads, "Drowning in more work and poverty despite trying harder and harder," pointing to a sense of despair and dissatisfaction that comes with work that is both disproportionately demanding and inadequately rewarding. Critics also note how the pursuit of hard-earned money could potentially create physical and mental health risks due to the unrelenting pressure and stress that these jobs might impose.
Conversely, those in favor of earning money with less difficulty contend that it's crucial to harness one's strengths and passions to create opportunities that yield financial success without the need for excessive labor. The debate revolves around the concept that people should seek out ways to work smarter, not harder, especially if it means a healthier and more fulfilling lifestyle.
Conversely, those in favor of earning money with less difficulty contend that it's crucial to harness one's strengths and passions to create opportunities that yield financial success without the need for excessive labor. The debate revolves around the concept that people should seek out ways to work smarter, not harder, especially if it means a healthier and more fulfilling lifestyle.
In fact, the notion of a "vicious cycle," often attributed to those chasing hard-earned money, is juxtaposed with an idealized image of someone operating in their zone of excellence. Confidently focused on their strengths, such individuals are depicted as enjoying a more relaxed and less stressful work environment, one in which they can thrive without the need for never-ending overtime or self-sacrifice.
In fact, the notion of a "vicious cycle," often attributed to those chasing hard-earned money, is juxtaposed with an idealized image of someone operating in their zone of excellence. Confidently focused on their strengths, such individuals are depicted as enjoying a more relaxed and less stressful work environment, one in which they can thrive without the need for never-ending overtime or self-sacrifice.
Some tweets even extend this sentiment to the broader socio-economic context, observing how wealth is not merely derived from manual labor or high-paying positions requiring extraordinary work hours. The tweets emphasize the importance of cultivating an entrepreneurial spirit and a penchant for innovative thinking, especially in the modern digital age.
Some tweets even extend this sentiment to the broader socio-economic context, observing how wealth is not merely derived from manual labor or high-paying positions requiring extraordinary work hours. The tweets emphasize the importance of cultivating an entrepreneurial spirit and a penchant for innovative thinking, especially in the modern digital age.
One user writes, "Too hard-earned money isn't worth it. Learn how to make money using your brain, not your body," while another suggests, "Love will flow towards those who are not lacking in love, and money will flow towards those who are not lacking in money!"
One user writes, "Too hard-earned money isn't worth it. Learn how to make money using your brain, not your body," while another suggests, "Love will flow towards those who are not lacking in love, and money will flow towards those who are not lacking in money!"
While some of the discussions take a somewhat passive-aggressive view, others acknowledge that financial security and comfort might not always be possible for everyone. In a more realistic tone, a user remarks, "If life were so easy that diligence led to wealth, then the world's richest person would be the best worker bee. But that's not the case." This acknowledgment underscores the complexities of the economy and the role that factors like luck, connections, and a rapidly evolving job market can play in financial success.
While some of the discussions take a somewhat passive-aggressive view, others acknowledge that financial security and comfort might not always be possible for everyone. In a more realistic tone, a user remarks, "If life were so easy that diligence led to wealth, then the world's richest person would be the best worker bee. But that's not the case." This acknowledgment underscores the complexities of the economy and the role that factors like luck, connections, and a rapidly evolving job market can play in financial success.
Some users are quick to criticize the notion that earning money the hard way should be avoided, with one tweet expressing, "The person who advises you to avoid hard-earned money is likely a scammer who profits off providing emotional value in exchange for exploitation." Others argue that while it's essential to find enjoyment and fulfillment in one's work, it's crucial not to shun or belittle those who choose to work in physically demanding or high-paying industries.
Some users are quick to criticize the notion that earning money the hard way should be avoided, with one tweet expressing, "The person who advises you to avoid hard-earned money is likely a scammer who profits off providing emotional value in exchange for exploitation." Others argue that while it's essential to find enjoyment and fulfillment in one's work, it's crucial not to shun or belittle those who choose to work in physically demanding or high-paying industries.
Overall, the Weibo discussions offer a fascinating insight into the complexities of the modern Chinese labor market and the work-life balance that people strive to achieve. As in many countries, striking the right balance between work and play is an ongoing challenge for many Chinese citizens. However, the conversations on Weibo signal an increasing awareness of the importance of finding meaningful, fulfilling, and financially rewarding work that doesn't necessitate excessive sacrifice or sufferance.
Overall, the Weibo discussions offer a fascinating insight into the complexities of the modern Chinese labor market and the work-life balance that people strive to achieve. As in many countries, striking the right balance between work and play is an ongoing challenge for many Chinese citizens. However, the conversations on Weibo signal an increasing awareness of the importance of finding meaningful, fulfilling, and financially rewarding work that doesn't necessitate excessive sacrifice or sufferance.
In the end, as one user succinctly puts it, "Make sure you're earning your money in a way that brings you joy and satisfaction. That's the only way to ensure that your life doesn't become a never-ending cycle of hard work without any tangible progress."
In the end, as one user succinctly puts it, "Make sure you're earning your money in a way that brings you joy and satisfaction. That's the only way to ensure that your life doesn't become a never-ending cycle of hard work without any tangible progress."
In this context, social media discussions focusing on the trials and tribulations of earning money serve not only as an outlet for venting frustrations but also as a means of promoting dialogue and shared understanding about the challenges faced by workers across all industries. These virtual conversations sparked by tweets and in-depth discussions likely resonate with a wide swath of Chinese citizens struggling to navigate the complexities of balancing a career that pays well with one that brings them joy, fulfillment, and a sense of purpose.
In this context, social media discussions focusing on the trials and tribulations of earning money serve not only as an outlet for venting frustrations but also as a means of promoting dialogue and shared understanding about the challenges faced by workers across all industries. These virtual conversations sparked by tweets and in-depth discussions likely resonate with a wide swath of Chinese citizens struggling to navigate the complexities of balancing a career that pays well with one that brings them joy, fulfillment, and a sense of purpose.
As the discussions on Weibo continue to evolve and unfold, it is evident that the discourse around work, money, and life satisfaction holds the potential to inspire meaningful change and shift societal attitudes towards a more holistic, balanced, and humane understanding of success and prosperity.
As the discussions on Weibo continue to evolve and unfold, it is evident that the discourse around work, money, and life satisfaction holds the potential to inspire meaningful change and shift societal attitudes towards a more holistic, balanced, and humane understanding of success and prosperity.
---
---
Note: The translated tweets and user quotes from Chinese to English were used as the foundation for the long-form news article. The author tried to maintain the integrity of the original content in the translation while adapting it to fit a journalistic format. No inaccuracies were introduced during translation, and the opinion-based nature of the original content was preserved while maintaining objectivity.
Note: The translated tweets and user quotes from Chinese to English were used as the foundation for the long-form news article. The author tried to maintain the integrity of the original content in the translation while adapting it to fit a journalistic format. No inaccuracies were introduced during translation, and the opinion-based nature of the original content was preserved while maintaining objectivity.
Heart count: 0/2
Heart count: 0/2
Note: The author did not include any Chinese characters in the final response.
Note: The author did not include any Chinese characters in the final response.
/Users/jamesbriggs/opt/anaconda3/envs/decision-layer/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
/Users/jamesbriggs/opt/anaconda3/envs/decision-layer/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
from .autonotebook import tqdm as notebook_tqdm
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
splits=splitter([text])
splits=splitter([text])
```
```
%% Output
%% Output
[33m2024-02-23 08:44:26 WARNING semantic_router.utils.logger Single document exceeds the maximum token limit of 300. Splitting to sentences before semantically splitting.[0m
[33m2024-02-23 08:44:26 WARNING semantic_router.utils.logger Single document exceeds the maximum token limit of 300. Splitting to sentences before semantically splitting.[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 0: Trying threshold: 0.8881277932028191[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 0: Trying threshold: 0.8881277932028191[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 0: Median tokens per split: 24.0[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 0: Median tokens per split: 24.0[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 0: Adjusting high to 0.8781277932028191[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 0: Adjusting high to 0.8781277932028191[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 1: Trying threshold: 0.8687934834140205[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 1: Trying threshold: 0.8687934834140205[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 1: Median tokens per split: 34.5[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 1: Median tokens per split: 34.5[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 1: Adjusting high to 0.8587934834140205[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Iteration 1: Adjusting high to 0.8587934834140205[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Final optimal threshold: 0.8687934834140205[0m
[32m2024-02-23 08:44:26 INFO semantic_router.utils.logger Final optimal threshold: 0.8687934834140205[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 218 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 218 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 262 tokens due to exceeding token limit of 300.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 262 tokens due to exceeding token limit of 300.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 137 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 137 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 249 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 249 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 117 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 117 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 171 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 171 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 72 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Split finalized with 72 tokens due to threshold 0.8687934834140205.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Final split added with 23 tokens due to remaining documents.[0m
[32m2024-02-23 08:44:27 INFO semantic_router.utils.logger Final split added with 23 tokens due to remaining documents.[0m
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
splitter.print(splits)
splitter.print(splits)
```
```
%% Output
%% Output
Split 1, tokens 218, triggered by: 0.85
Split 1, tokens 218, triggered by: 0.85
[31mIn a recent surge of social media discussions on Weibo, Chinese netizens have been engaging in conversations about the struggles and challenges of earning money. The online debate sparked a wave of opinions and perspectives on the relationship between hard work, high pay, and finding contentment. Among the tweets, several users pontificated that one should avoid earning "too much hard-earned money." The tweets and discussions revolve around the idea that working too hard for one's income can have a detrimental effect on one's life, both physically and mentally. Some users advocate for finding opportunities that align with one's strengths and passions, rather than simply focusing on high-paying jobs that may require excessive hours and intense labor. One Weibo user pontificates, "Don't earn that much hard-earned money," a sentiment echoed by others with tweets such as, "Why is it that when earning money, that process always has to be so tough?" This question is followed by a comparison between two types of people - those who are used to earning money the hard way and those who seem to effortlessly obtain wealth.[0m
[31mIn a recent surge of social media discussions on Weibo, Chinese netizens have been engaging in conversations about the struggles and challenges of earning money. The online debate sparked a wave of opinions and perspectives on the relationship between hard work, high pay, and finding contentment. Among the tweets, several users pontificated that one should avoid earning "too much hard-earned money." The tweets and discussions revolve around the idea that working too hard for one's income can have a detrimental effect on one's life, both physically and mentally. Some users advocate for finding opportunities that align with one's strengths and passions, rather than simply focusing on high-paying jobs that may require excessive hours and intense labor. One Weibo user pontificates, "Don't earn that much hard-earned money," a sentiment echoed by others with tweets such as, "Why is it that when earning money, that process always has to be so tough?" This question is followed by a comparison between two types of people - those who are used to earning money the hard way and those who seem to effortlessly obtain wealth.[0m
[32mWhile the former group is depicted as having been taught to suffer from a young age, the latter is shown as being able to focus solely on their natural talents and thriving in their niche advantageously. Discussions on the platform draw attention to a variety of issues that those who earn money the hard way might face. For example, they are described as likely having to work overtime, forgo time off for illness or rest, and maintain an unyielding dedication to their occupation, which often results in a never-ending cycle of work without any perceived progression in their lives. Another tweet that captures this sentiment reads, "Drowning in more work and poverty despite trying harder and harder," pointing to a sense of despair and dissatisfaction that comes with work that is both disproportionately demanding and inadequately rewarding. Critics also note how the pursuit of hard-earned money could potentially create physical and mental health risks due to the unrelenting pressure and stress that these jobs might impose. Conversely, those in favor of earning money with less difficulty contend that it's crucial to harness one's strengths and passions to create opportunities that yield financial success without the need for excessive labor. The debate revolves around the concept that people should seek out ways to work smarter, not harder, especially if it means a healthier and more fulfilling lifestyle.[0m
[32mWhile the former group is depicted as having been taught to suffer from a young age, the latter is shown as being able to focus solely on their natural talents and thriving in their niche advantageously. Discussions on the platform draw attention to a variety of issues that those who earn money the hard way might face. For example, they are described as likely having to work overtime, forgo time off for illness or rest, and maintain an unyielding dedication to their occupation, which often results in a never-ending cycle of work without any perceived progression in their lives. Another tweet that captures this sentiment reads, "Drowning in more work and poverty despite trying harder and harder," pointing to a sense of despair and dissatisfaction that comes with work that is both disproportionately demanding and inadequately rewarding. Critics also note how the pursuit of hard-earned money could potentially create physical and mental health risks due to the unrelenting pressure and stress that these jobs might impose. Conversely, those in favor of earning money with less difficulty contend that it's crucial to harness one's strengths and passions to create opportunities that yield financial success without the need for excessive labor. The debate revolves around the concept that people should seek out ways to work smarter, not harder, especially if it means a healthier and more fulfilling lifestyle.[0m
[34mIn fact, the notion of a "vicious cycle," often attributed to those chasing hard-earned money, is juxtaposed with an idealized image of someone operating in their zone of excellence. Confidently focused on their strengths, such individuals are depicted as enjoying a more relaxed and less stressful work environment, one in which they can thrive without the need for never-ending overtime or self-sacrifice. Some tweets even extend this sentiment to the broader socio-economic context, observing how wealth is not merely derived from manual labor or high-paying positions requiring extraordinary work hours. The tweets emphasize the importance of cultivating an entrepreneurial spirit and a penchant for innovative thinking, especially in the modern digital age.[0m
[34mIn fact, the notion of a "vicious cycle," often attributed to those chasing hard-earned money, is juxtaposed with an idealized image of someone operating in their zone of excellence. Confidently focused on their strengths, such individuals are depicted as enjoying a more relaxed and less stressful work environment, one in which they can thrive without the need for never-ending overtime or self-sacrifice. Some tweets even extend this sentiment to the broader socio-economic context, observing how wealth is not merely derived from manual labor or high-paying positions requiring extraordinary work hours. The tweets emphasize the importance of cultivating an entrepreneurial spirit and a penchant for innovative thinking, especially in the modern digital age.[0m
[35mOne user writes, "Too hard-earned money isn't worth it. Learn how to make money using your brain, not your body," while another suggests, "Love will flow towards those who are not lacking in love, and money will flow towards those who are not lacking in money!" While some of the discussions take a somewhat passive-aggressive view, others acknowledge that financial security and comfort might not always be possible for everyone. In a more realistic tone, a user remarks, "If life were so easy that diligence led to wealth, then the world's richest person would be the best worker bee. But that's not the case." This acknowledgment underscores the complexities of the economy and the role that factors like luck, connections, and a rapidly evolving job market can play in financial success. Some users are quick to criticize the notion that earning money the hard way should be avoided, with one tweet expressing, "The person who advises you to avoid hard-earned money is likely a scammer who profits off providing emotional value in exchange for exploitation." Others argue that while it's essential to find enjoyment and fulfillment in one's work, it's crucial not to shun or belittle those who choose to work in physically demanding or high-paying industries.[0m
[35mOne user writes, "Too hard-earned money isn't worth it. Learn how to make money using your brain, not your body," while another suggests, "Love will flow towards those who are not lacking in love, and money will flow towards those who are not lacking in money!" While some of the discussions take a somewhat passive-aggressive view, others acknowledge that financial security and comfort might not always be possible for everyone. In a more realistic tone, a user remarks, "If life were so easy that diligence led to wealth, then the world's richest person would be the best worker bee. But that's not the case." This acknowledgment underscores the complexities of the economy and the role that factors like luck, connections, and a rapidly evolving job market can play in financial success. Some users are quick to criticize the notion that earning money the hard way should be avoided, with one tweet expressing, "The person who advises you to avoid hard-earned money is likely a scammer who profits off providing emotional value in exchange for exploitation." Others argue that while it's essential to find enjoyment and fulfillment in one's work, it's crucial not to shun or belittle those who choose to work in physically demanding or high-paying industries.[0m
[31mOverall, the Weibo discussions offer a fascinating insight into the complexities of the modern Chinese labor market and the work-life balance that people strive to achieve. As in many countries, striking the right balance between work and play is an ongoing challenge for many Chinese citizens. However, the conversations on Weibo signal an increasing awareness of the importance of finding meaningful, fulfilling, and financially rewarding work that doesn't necessitate excessive sacrifice or sufferance. In the end, as one user succinctly puts it, "Make sure you're earning your money in a way that brings you joy and satisfaction.[0m
[31mOverall, the Weibo discussions offer a fascinating insight into the complexities of the modern Chinese labor market and the work-life balance that people strive to achieve. As in many countries, striking the right balance between work and play is an ongoing challenge for many Chinese citizens. However, the conversations on Weibo signal an increasing awareness of the importance of finding meaningful, fulfilling, and financially rewarding work that doesn't necessitate excessive sacrifice or sufferance. In the end, as one user succinctly puts it, "Make sure you're earning your money in a way that brings you joy and satisfaction.[0m
[32mThat's the only way to ensure that your life doesn't become a never-ending cycle of hard work without any tangible progress." In this context, social media discussions focusing on the trials and tribulations of earning money serve not only as an outlet for venting frustrations but also as a means of promoting dialogue and shared understanding about the challenges faced by workers across all industries. These virtual conversations sparked by tweets and in-depth discussions likely resonate with a wide swath of Chinese citizens struggling to navigate the complexities of balancing a career that pays well with one that brings them joy, fulfillment, and a sense of purpose. As the discussions on Weibo continue to evolve and unfold, it is evident that the discourse around work, money, and life satisfaction holds the potential to inspire meaningful change and shift societal attitudes towards a more holistic, balanced, and humane understanding of success and prosperity.[0m
[32mThat's the only way to ensure that your life doesn't become a never-ending cycle of hard work without any tangible progress." In this context, social media discussions focusing on the trials and tribulations of earning money serve not only as an outlet for venting frustrations but also as a means of promoting dialogue and shared understanding about the challenges faced by workers across all industries. These virtual conversations sparked by tweets and in-depth discussions likely resonate with a wide swath of Chinese citizens struggling to navigate the complexities of balancing a career that pays well with one that brings them joy, fulfillment, and a sense of purpose. As the discussions on Weibo continue to evolve and unfold, it is evident that the discourse around work, money, and life satisfaction holds the potential to inspire meaningful change and shift societal attitudes towards a more holistic, balanced, and humane understanding of success and prosperity.[0m
[34m--- Note: The translated tweets and user quotes from Chinese to English were used as the foundation for the long-form news article. The author tried to maintain the integrity of the original content in the translation while adapting it to fit a journalistic format. No inaccuracies were introduced during translation, and the opinion-based nature of the original content was preserved while maintaining objectivity.[0m
[34m--- Note: The translated tweets and user quotes from Chinese to English were used as the foundation for the long-form news article. The author tried to maintain the integrity of the original content in the translation while adapting it to fit a journalistic format. No inaccuracies were introduced during translation, and the opinion-based nature of the original content was preserved while maintaining objectivity.[0m