MCPcopy Create free account
hub / github.com/ClickHouse/ai-sdk-cpp / get_recommendations

Function get_recommendations

examples/tool_calling_multistep.cpp:93–122  ·  view source on GitHub ↗

Tool: Get city recommendations

Source from the content-addressed store, hash-verified

91
92// Tool: Get city recommendations
93ai::JsonValue get_recommendations(const ai::JsonValue& args,
94 const ai::ToolExecutionContext& context) {
95 std::string city = args["city"].get<std::string>();
96 std::string weather_condition =
97 args.contains("weather") ? args["weather"].get<std::string>() : "unknown";
98
99 std::cout << "💡 Getting recommendations for: " << city
100 << " (weather: " << weather_condition << ")" << std::endl;
101
102 std::vector<std::string> indoor_activities = {
103 "Visit museums", "Go shopping", "Try local restaurants", "See a movie"};
104 std::vector<std::string> outdoor_activities = {
105 "Walk in parks", "Visit landmarks", "Take photos", "Outdoor dining"};
106
107 ai::JsonValue activities;
108 if (weather_condition == "Rainy") {
109 activities = indoor_activities;
110 } else {
111 // Mix of indoor and outdoor
112 activities = ai::JsonValue::array();
113 for (int i = 0; i < 2; ++i) {
114 activities.push_back(indoor_activities[i]);
115 activities.push_back(outdoor_activities[i]);
116 }
117 }
118
119 return ai::JsonValue{{"city", city},
120 {"weather_condition", weather_condition},
121 {"recommendations", activities}};
122}
123
124int main() {
125 std::cout << "AI SDK C++ - Multi-Step Tool Calling Example\n";

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected